From d2d4fde6010aa6791f2a819498033c7dc784aa33 Mon Sep 17 00:00:00 2001 From: Patrick Peng Sun Date: Sun, 2 Jul 2017 18:22:38 +1000 Subject: [PATCH] subscribe, customer entity basic field, openID and subscribed, test passed --- crmEntitySubscribe.go | 7 ++++ crmEntitySubscribe_test.go | 55 +++++++++++++++++++++++++++ eventSubscribe.go | 5 +++ sample_data/crm_entity_subscribe.json | 1 + 4 files changed, 68 insertions(+) create mode 100644 crmEntitySubscribe.go create mode 100644 crmEntitySubscribe_test.go diff --git a/crmEntitySubscribe.go b/crmEntitySubscribe.go new file mode 100644 index 0000000..113c4d3 --- /dev/null +++ b/crmEntitySubscribe.go @@ -0,0 +1,7 @@ +package main + +type crmdSubscribe struct { + crmdEntityBase + OpenID string `json:"openID,omitempty"` + Subscribed bool `json:"subscribed,omitempty"` +} diff --git a/crmEntitySubscribe_test.go b/crmEntitySubscribe_test.go new file mode 100644 index 0000000..52f82a9 --- /dev/null +++ b/crmEntitySubscribe_test.go @@ -0,0 +1,55 @@ +package main + +import ( + "encoding/json" + "testing" +) + +func TestDecodeSubscribed(t *testing.T) { + msg := ` + { + "id": "5958874da01cc362f", + "name": "somename", + "deleted": false, + "description": null, + "createdAt": "2017-07-02 05:40:29", + "modifiedAt": "2017-07-02 06:23:20", + "openID": "someidea2", + "createdById": "1", + "createdByName": "Admin", + "modifiedById": "1", + "modifiedByName": "Admin", + "assignedUserId": "1", + "assignedUserName": "Admin", + "subscribed": false, + "teamsIds": [ + "5958913a2479166db", + "59589145af954bc38" + ], + "teamsNames": { + "5958913a2479166db": "testteam1", + "59589145af954bc38": "testteam2" + } + }` + + e := crmdSubscribe{} + err := json.Unmarshal([]byte(msg), &e) + AssertEqual(t, err, nil, "decode json entity should be nil") + AssertEqual(t, e.ID, "5958874da01cc362f", "") + AssertEqual(t, e.Deleted, false, "") + AssertEqual(t, e.Description, "", "") + AssertEqual(t, e.CreatedAt, "2017-07-02 05:40:29", "") + AssertEqual(t, e.ModifiedAt, "2017-07-02 06:23:20", "") + AssertEqual(t, e.OpenID, "someidea2", "") + AssertEqual(t, e.Subscribed, false, "") + AssertEqual(t, e.CreatedByID, "1", "") + AssertEqual(t, e.CreatedByName, "Admin", "") + AssertEqual(t, e.ModifiedByID, "1", "") + AssertEqual(t, e.ModifiedByName, "Admin", "") + AssertEqual(t, e.AssignedUserID, "1", "") + AssertEqual(t, e.AssignedUserName, "Admin", "") + AssertEqual(t, e.TeamsIDs[0], "5958913a2479166db", "") + AssertEqual(t, e.TeamsIDs[1], "59589145af954bc38", "") + AssertEqual(t, e.TeamsNames["5958913a2479166db"], "testteam1", "") + AssertEqual(t, e.TeamsNames["59589145af954bc38"], "testteam2", "") +} diff --git a/eventSubscribe.go b/eventSubscribe.go index 583a0a5..187967f 100644 --- a/eventSubscribe.go +++ b/eventSubscribe.go @@ -125,3 +125,8 @@ func (m *WechatUserInfo) registerNewLeadWithInfo(in InWechatMsg) (newuser crmdLe } return } + +//when user left +func onUnSubscribe(in InWechatMsg) { + //TODO: record unSubscribe +} diff --git a/sample_data/crm_entity_subscribe.json b/sample_data/crm_entity_subscribe.json index a4b3b22..daef560 100644 --- a/sample_data/crm_entity_subscribe.json +++ b/sample_data/crm_entity_subscribe.json @@ -12,6 +12,7 @@ "modifiedByName": "Admin", "assignedUserId": "1", "assignedUserName": "Admin", + "subscribed": false, "teamsIds": [ "5958913a2479166db", "59589145af954bc38"