package member import ( "encoding/json" "errors" "git.loafle.net/overflow/encryption_go" "git.loafle.net/overflow/overflow_service/proxy" "git.loafle.net/overflow/overflow_service/proxy/apikey" "git.loafle.net/overflow/overflow_service/proxy/keystore" "log" ) 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) getMemberMap(mem *Member) map[string]string { memMap := make(map[string]string) str, err := json.Marshal(mem) if err != nil { log.Fatal("Json Marshal Error: ", err) } memMap["com.loafle.overflow.module.member.model.Member"] = string(str) return memMap } 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 memMap := m.getMemberMap(mem) re, err := proxy.InvokeDB(TARGET_DAO, "save", memMap) if err != nil { return "", err } return re, nil } func (m *MemberService) ReadByEmail(mem *Member) (string, error) { log.Println("Call ReadByEmail", mem.Email) memMap := m.getMemberMap(mem) re, err := proxy.InvokeDB(TARGET_DAO, "findByEmail", memMap) if err != nil { return "", err } return re, nil } func (m *MemberService) Read(mem *Member) (string, error) { log.Println("Call Read", mem.Email) // Todo Call DB Gateway mem.Pw = "qwer5795" //memMap := m.getMemberMap() mm := make(map[string]string) mm["id"] = string(mem.Id) log.Println("Read Member", m) re, err := proxy.InvokeDB(TARGET_DAO, "find", mm) if err != nil { return "", err } return re, err } func (m *MemberService) Modify(mem *Member) (string, error) { log.Println("Call Modify", mem.Email, "::", mem.PwSalt) // Todo Call DB Gateway mem.Pw = "read" memMap := m.getMemberMap(mem) re, err := proxy.InvokeDB(TARGET_DAO, "update", memMap) if err != nil { return "", err } return re, nil } func (m *MemberService) Remove(mem *Member) (string, error) { log.Println("Call Remove", mem.Email) // Todo Call DB Gateway //m.Digest = "read" memMap := m.getMemberMap(mem) re, err := proxy.InvokeDB(TARGET_DAO, "delete", memMap) 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 }