| import ( | import ( | ||||
| "encoding/json" | "encoding/json" | ||||
| "errors" | |||||
| "fmt" | "fmt" | ||||
| "io/ioutil" | "io/ioutil" | ||||
| "log" | "log" | ||||
| //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.registerNewUserWithInfo(in) | |||||
| info.registerNewLeadWithInfo(in) | |||||
| in.askUserFillupBasicInfo() | in.askUserFillupBasicInfo() | ||||
| } | } | ||||
| //some error happened | //some error happened | ||||
| } | } | ||||
| func (m *WechatUserInfo) registerNewUserWithInfo(in InWechatMsg) (newuser crmdLead, err error) { | |||||
| 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 | |||||
| } | |||||
| u := crmdLead{} | u := crmdLead{} | ||||
| u.FirstName = "\u0020" //a visible space | u.FirstName = "\u0020" //a visible space | ||||
| if m.NickName == "" { | if m.NickName == "" { |
| 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.registerNewUserWithInfo(in) | |||||
| newuser, err := s.registerNewLeadWithInfo(in) | |||||
| 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, "wechat_hitxy_id mismatch") | AssertEqual(t, newuser.WechatHitxyID, in.header.FromUserName, "wechat_hitxy_id mismatch") | ||||
| log.Printf("created temp Lead %s ", newuser.ID) | log.Printf("created temp Lead %s ", newuser.ID) |