overflow_service/proxy/member/member_service.go
2017-06-26 15:16:36 +09:00

156 lines
3.1 KiB
Go

package member
import (
"encoding/json"
"errors"
"git.loafle.net/overflow/encryption_go"
"git.loafle.net/overflow/overflow_service/proxy/apikey"
"git.loafle.net/overflow/overflow_service/proxy/keystore"
"log"
"git.loafle.net/overflow/overflow_service/proxy/utils"
)
type Member struct {
Id json.Number `json:"id,Number,omitempty"`
Email string `json:"email"`
PwSalt string `json:"pwSalt"`
Pw string `json:"pw"`
Name string `json:"name"`
CompanyName string `json:"companyName"`
Phone string `json:"phone"`
Status *MetaMemberStatus `json:"status"`
}
type MetaMemberStatus struct {
Id json.Number `json:"id,Number,omitempty"`
Name string `json:"name"`
}
type MemberService struct {
}
var TARGET_DAO = "member"
func NewMember() *Member {
return &Member{}
}
func NewMemberService() *MemberService {
return &MemberService{}
}
func (m *MemberService) Login(mem *Member) (string, error) {
result, err := m.ReadByEmail(mem)
if err != nil {
return "", err
}
if result == "" {
return "", errors.New("login reject")
}
temp := Member{}
err = json.Unmarshal([]byte(result), &temp)
if err != nil {
return "", err
}
//if temp.AuthorizedDate == "" {
// return "", errors.New("Not authenticated.")
//}
b := encryption.Check(mem.PwSalt, temp.PwSalt, temp.Pw)
if !b {
return "", errors.New("login reject")
}
return "login success", nil
}
func (m *MemberService) Regist(mem *Member) (string, error) {
log.Println("Call Regist", mem.Email, mem.PwSalt)
//pwSalt, digest, err := encryption.Encrypt(mem.PwSalt)
//if err != nil {
// //log.Fatal("encryption Encrypt Error: ", err)
// return "", err
//}
//mem.PwSalt = pwSalt
//mem.Pw = digest
re, err := utils.InvokeDBByModel(TARGET_DAO, "save", mem, utils.MODEL_MEMBER)
if err != nil {
return "", err
}
return re, nil
}
func (m *MemberService) ReadByEmail(mem *Member) (string, error) {
log.Println("Call ReadByEmail", mem.Email)
re, err := utils.InvokeDBByModel(TARGET_DAO, "findByEmail",mem, utils.MODEL_MEMBER)
if err != nil {
return "", err
}
return re, nil
}
func (m *MemberService) Read(mem *Member) (string, error) {
re, err := utils.InvokeDBByModel("member","findOne",mem.Id,"java.lang.Long")
if err != nil {
return "", err
}
return re, err
}
func (m *MemberService) Modify(mem *Member) (string, error) {
if mem.Id == "" {
log.Fatal("Id nil")
}
re, err := utils.InvokeDBByModel("member","findOne",mem,utils.MODEL_MEMBER)
if err != nil {
return "", err
}
return re, nil
}
func (m *MemberService) Remove(mem *Member) (string, error) {
re, err := utils.InvokeDBByModel("member","delete",mem.Id,"java.lang.Long")
if err != nil {
return "", err
}
return re, nil
}
func (m *MemberService) EmailConfirm() (string, error) {
ks := keystore.NewKeyStoreSerivce()
key, err := ks.CreateKey()
if err != nil {
return "", err
}
log.Println(key)
ak := apikey.NewApiKeyService()
_, err = ak.SaveApikey(nil)
if err != nil {
return "", err
}
//log.Println(out)
return "", nil
}