package member import ( "encoding/json" "git.loafle.net/overflow/overflow_proxy_service/proxy" "log" "git.loafle.net/overflow/overflow_proxy_service/proxy/apikey" "git.loafle.net/overflow/overflow_proxy_service/proxy/keystore" "git.loafle.net/overflow/encryption_go" ) type Member struct { Id json.Number `json:"id,Number,omitempty"` Email string `json:"email"` PwSalt string `json:"pwSalt"` Digest string `json:"digest"` Name string `json:"name"` Company string `json:"company"` Phone string `json:"phone"` AuthorizedDate json.Number `json:"authorizedDate,Number"` } 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.member.model.Member"] = string(str) return memMap } func (m *MemberService) Login(mem *Member) string { result := m.ReadByEmail(mem) if result == "" { return "login reject" } temp := Member{} err := json.Unmarshal([]byte(result), &temp) if err != nil { return err.Error() } if temp.AuthorizedDate == "" { return "Not authenticated." } b := encryption.Check(mem.PwSalt, temp.PwSalt, temp.Digest) if !b { return "login reject" } return "login success" } func (m *MemberService) Regist(mem *Member) string { log.Println("Call Regist", mem.Email, mem.PwSalt) pwSalt, digest, err := encryption.Encrypt(mem.PwSalt) if err != nil { log.Fatal("encryption Encrypt Error: ", err) } mem.PwSalt = pwSalt mem.Digest = digest memMap := m.getMemberMap(mem) re := proxy.InvokeDB(TARGET_DAO, "create", memMap) return re } func (m *MemberService) ReadByEmail(mem *Member) string { log.Println("Call ReadByEmail", mem.Email) memMap := m.getMemberMap(mem) re := proxy.InvokeDB(TARGET_DAO, "findByEmail", memMap) return re } func (m *MemberService) Read(mem *Member) string { log.Println("Call Read", mem.Email) // Todo Call DB Gateway mem.Digest = "qwer5795" //memMap := m.getMemberMap() mm := make(map[string]string) mm["id"] = string(mem.Id) log.Println("Read Member", m) re := proxy.InvokeDB(TARGET_DAO, "find", mm) return re } func (m *MemberService) Modify(mem *Member) string { log.Println("Call Modify", mem.Email, "::", mem.PwSalt) // Todo Call DB Gateway mem.Digest = "read" memMap := m.getMemberMap(mem) re := proxy.InvokeDB(TARGET_DAO, "update", memMap) return re } func (m *MemberService) Remove(mem *Member) string { log.Println("Call Remove", mem.Email) // Todo Call DB Gateway //m.Digest = "read" memMap := m.getMemberMap(mem) re := proxy.InvokeDB(TARGET_DAO, "delete", memMap) return re } func (m *MemberService) GetModel() (interface{}) { return NewMember() } func (m *MemberService) EmailConfirm() string { ks := keystore.NewKeyStoreSerivce() key, err := ks.CreateKey() if err != nil { return "" } log.Println(key) ak := apikey.NewApiKeyService() out, err := ak.SaveApikey(nil) if err != nil { return "" } log.Println(out) return ""; }