Browse Source

registerUser signature changed to simple openID

master
Patrick Peng Sun 8 years ago
parent
commit
ce8d36429f
2 changed files with 19 additions and 10 deletions
  1. +18
    -9
      eventSubscribe.go
  2. +1
    -1
      eventSubscribe_test.go

+ 18
- 9
eventSubscribe.go View File

@@ -2,7 +2,6 @@ package main

import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"log"
@@ -22,12 +21,13 @@ func onSubscribe(in InWechatMsg) {

//existing user
if found {
crmLeadSetStatusNew(info.ID)
sendGreeting4ExistingUser(in, info)
} else { //new user
//get user info from wechat
info := WechatUserInfo{}
info.getUserInfo(openID, "zh_CN")
info.registerNewLeadWithInfo(in)
info.registerNewLeadWithInfo(in.header.FromUserName)
in.askUserFillupBasicInfo()
}
//some error happened
@@ -100,12 +100,7 @@ func sendGreeting4ExistingUser(in InWechatMsg, info crmdLead) {

}

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.FirstName = "\u0020" //a visible space
@@ -115,8 +110,9 @@ func (m *WechatUserInfo) registerNewLeadWithInfo(in InWechatMsg) (newuser crmdLe
u.LastName = m.NickName
}
u.Password = "password"
u.WechatHitxyID = in.header.FromUserName
u.WechatHitxyID = openID
u.Status = "New"
u.AvatarID, _ = m.uploadAvatar()

data, _ := json.Marshal(u)
entity, err := crmCreateEntity("Lead", data)
@@ -126,6 +122,19 @@ func (m *WechatUserInfo) registerNewLeadWithInfo(in InWechatMsg) (newuser crmdLe
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
func onUnSubscribe(in InWechatMsg) {
info, found, err := crmFindLeadByOpenID(in.header.FromUserName)

+ 1
- 1
eventSubscribe_test.go View File

@@ -75,7 +75,7 @@ func TestRegisterNewUser(t *testing.T) {
in.header.FromUserName = "abc"
s := WechatUserInfo{}
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, newuser.WechatHitxyID, in.header.FromUserName, "wechatOpenID mismatch")
log.Printf("created temp Lead %s ", newuser.ID)

Loading…
Cancel
Save