Quellcode durchsuchen

registerUser signature changed to simple openID

master
Patrick Peng Sun vor 8 Jahren
Ursprung
Commit
ce8d36429f
2 geänderte Dateien mit 19 neuen und 10 gelöschten Zeilen
  1. +18
    -9
      eventSubscribe.go
  2. +1
    -1
      eventSubscribe_test.go

+ 18
- 9
eventSubscribe.go Datei anzeigen



import ( import (
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log" "log"


//existing user //existing user
if found { if found {
crmLeadSetStatusNew(info.ID)
sendGreeting4ExistingUser(in, info) sendGreeting4ExistingUser(in, info)
} else { //new user } else { //new user
//get user info from wechat //get user info from wechat
info := WechatUserInfo{} info := WechatUserInfo{}
info.getUserInfo(openID, "zh_CN") info.getUserInfo(openID, "zh_CN")
info.registerNewLeadWithInfo(in)
info.registerNewLeadWithInfo(in.header.FromUserName)
in.askUserFillupBasicInfo() in.askUserFillupBasicInfo()
} }
//some error happened //some error happened


} }


func (m *WechatUserInfo) registerNewLeadWithInfo(in InWechatMsg) (newuser crmdLead, err error) {
if in.header.FromUserName == "" {
log.Println("Error: trying to register user without OpenID")
err = errors.New("registerNewLeadWithInfo: no user OpenID")
return
}
func (m *WechatUserInfo) registerNewLeadWithInfo(openID string) (newuser crmdLead, err error) {


u := crmdLead{} u := crmdLead{}
u.FirstName = "\u0020" //a visible space u.FirstName = "\u0020" //a visible space
u.LastName = m.NickName u.LastName = m.NickName
} }
u.Password = "password" u.Password = "password"
u.WechatHitxyID = in.header.FromUserName
u.WechatHitxyID = openID
u.Status = "New" u.Status = "New"
u.AvatarID, _ = m.uploadAvatar()


data, _ := json.Marshal(u) data, _ := json.Marshal(u)
entity, err := crmCreateEntity("Lead", data) entity, err := crmCreateEntity("Lead", data)
return return
} }


func (m *WechatUserInfo) uploadAvatar() (avatarID string, err error) {
tmpfile, _, err := saveURL(m.Avatar)
if err != nil {
return
}
attach, err := crmCreateAttachment(tmpfile)
if err != nil {
return
}
avatarID = attach.ID
return
}

//when user left //when user left
func onUnSubscribe(in InWechatMsg) { func onUnSubscribe(in InWechatMsg) {
info, found, err := crmFindLeadByOpenID(in.header.FromUserName) info, found, err := crmFindLeadByOpenID(in.header.FromUserName)

+ 1
- 1
eventSubscribe_test.go Datei anzeigen

in.header.FromUserName = "abc" in.header.FromUserName = "abc"
s := WechatUserInfo{} s := WechatUserInfo{}
json.Unmarshal([]byte(msg), &s) json.Unmarshal([]byte(msg), &s)
newuser, err := s.registerNewLeadWithInfo(in)
newuser, err := s.registerNewLeadWithInfo(in.header.FromUserName)
AssertEqual(t, err, nil, "should be successfully added new user") AssertEqual(t, err, nil, "should be successfully added new user")
AssertEqual(t, newuser.WechatHitxyID, in.header.FromUserName, "wechatOpenID mismatch") AssertEqual(t, newuser.WechatHitxyID, in.header.FromUserName, "wechatOpenID mismatch")
log.Printf("created temp Lead %s ", newuser.ID) log.Printf("created temp Lead %s ", newuser.ID)

Laden…
Abbrechen
Speichern