158 lines
3.3 KiB
Go
158 lines
3.3 KiB
Go
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 {
|
|
Param *Member `json:"param"`
|
|
}
|
|
|
|
var TARGET_DAO = "member"
|
|
|
|
func NewMember() *Member {
|
|
m := Member{}
|
|
return &m
|
|
}
|
|
func NewMemberService() *MemberService {
|
|
ms := &MemberService{}
|
|
ms.Param = NewMember()
|
|
return ms
|
|
}
|
|
|
|
func (m *MemberService) getMemberMap() map[string]string {
|
|
memMap := make(map[string]string)
|
|
|
|
str, err := json.Marshal(m.Param)
|
|
|
|
if err != nil {
|
|
log.Fatal("Json Marshal Error: ", err)
|
|
}
|
|
|
|
memMap["com.loafle.overflow.member.model.Member"] = string(str)
|
|
|
|
return memMap
|
|
}
|
|
|
|
func (m *MemberService) Login() string {
|
|
|
|
result := m.ReadByEmail()
|
|
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(m.Param.PwSalt, temp.PwSalt, temp.Digest)
|
|
if !b {
|
|
return "login reject"
|
|
}
|
|
|
|
return "login success"
|
|
}
|
|
|
|
func (m *MemberService) Regist() string {
|
|
log.Println("Call Regist", m.Param.Email, m.Param.PwSalt)
|
|
|
|
pwSalt, digest, err := encryption.Encrypt(m.Param.PwSalt)
|
|
if err != nil {
|
|
log.Fatal("encryption Encrypt Error: ", err)
|
|
}
|
|
|
|
m.Param.PwSalt = pwSalt
|
|
m.Param.Digest = digest
|
|
memMap := m.getMemberMap()
|
|
|
|
re := proxy.InvokeDB(TARGET_DAO, "create", memMap)
|
|
|
|
return re
|
|
}
|
|
|
|
func (m *MemberService) ReadByEmail() string {
|
|
log.Println("Call ReadByEmail", m.Param.Email)
|
|
memMap := m.getMemberMap()
|
|
re := proxy.InvokeDB(TARGET_DAO, "findByEmail", memMap)
|
|
return re
|
|
}
|
|
|
|
func (m *MemberService) Read() string {
|
|
log.Println("Call Read", m.Param.Email)
|
|
// Todo Call DB Gateway
|
|
m.Param.Digest = "qwer5795"
|
|
//memMap := m.getMemberMap()
|
|
mm := make(map[string]string)
|
|
mm["id"] = string(m.Param.Id)
|
|
log.Println("Read Member", m)
|
|
re := proxy.InvokeDB(TARGET_DAO, "find", mm)
|
|
|
|
return re
|
|
}
|
|
|
|
func (m *MemberService) Modify() string {
|
|
log.Println("Call Modify", m.Param.Email, "::", m.Param.PwSalt)
|
|
// Todo Call DB Gateway
|
|
m.Param.Digest = "read"
|
|
memMap := m.getMemberMap()
|
|
|
|
re := proxy.InvokeDB(TARGET_DAO, "update", memMap)
|
|
|
|
return re
|
|
}
|
|
|
|
func (m *MemberService) Remove() string {
|
|
log.Println("Call Remove", m.Param.Email)
|
|
// Todo Call DB Gateway
|
|
//m.Digest = "read"
|
|
memMap := m.getMemberMap()
|
|
|
|
re := proxy.InvokeDB(TARGET_DAO, "delete", memMap)
|
|
|
|
return re
|
|
}
|
|
|
|
func (m *MemberService) GetModel() (interface{}) {
|
|
return m.Param
|
|
}
|
|
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 "";
|
|
} |