UNPKG

4.35 kBJavaScriptView Raw
1var Promise = require('promise');
2var winston = require('./winston');
3
4var Group = function(config, single, plural){
5 var request = require('./c21request.js')(config)
6
7 return {
8
9
10
11
12
13 create: function(name, members, attributes, group_id){
14 var create = {}
15 create["group_name"] = name;
16
17 let group_members = {};
18 members.forEach(member => {
19 group_members[member] = 1;
20 });
21 create["group_members"] = group_members;
22
23 create["group_id"] = group_id;
24
25 if (attributes) {
26 create["attributes"] = attributes;
27 }
28
29 winston.debug("chat21-node-sdk group.create", create);
30
31
32 var admintoken = "";
33 if (config.admintoken) {
34 admintoken = "?token=" + encodeURIComponent(config.admintoken);
35 }
36
37
38 return new Promise(function(resolve, reject){
39 request.post('/' + plural+ admintoken, create).then(function(data){
40 winston.debug("chat21-node-sdk group.created", data);
41 resolve(data)
42 }).catch(function(err){
43 reject(err)
44 })
45 })
46 },
47
48 setMembers: function(members, group_id){
49 var join = {}
50
51 let group_members = {};
52 members.forEach(member => {
53 group_members[member] = 1;
54 });
55
56 join["members"] = group_members;
57
58 var admintoken = "";
59 if (config.admintoken) {
60 admintoken = "?token=" + encodeURIComponent(config.admintoken);
61 }
62
63 winston.debug("chat21-node-sdk join", join);
64
65 return new Promise(function(resolve, reject) {
66 request.put('/' + plural+'/'+group_id+'/members' + admintoken, join).then(function(data){
67 winston.debug("chat21-node-sdk data", data);
68 resolve(data)
69 }).catch(function(err){
70 reject(err)
71 })
72 })
73 },
74
75
76 join: function(member_id, group_id){
77 var join = {}
78 join["member_id"] = member_id;
79
80 var admintoken = "";
81 if (config.admintoken) {
82 admintoken = "?token=" + encodeURIComponent(config.admintoken);
83 }
84
85
86 return new Promise(function(resolve, reject){
87 request.post('/' + plural+'/'+group_id+'/members' + admintoken, join).then(function(data){
88 winston.debug("chat21-node-sdk data", data);
89 resolve(data)
90 }).catch(function(err){
91 reject(err)
92 })
93 })
94 },
95
96 leave: function(member_id, group_id){
97
98 var admintoken = "";
99 if (config.admintoken) {
100 admintoken = "?token=" + encodeURIComponent(config.admintoken);
101 }
102
103 return new Promise(function(resolve, reject){
104 request.delete('/' + plural+'/'+group_id+'/members/' + member_id + admintoken).then(function(data){
105 winston.debug("chat21-node-sdk data", data);
106 resolve(data)
107 }).catch(function(err){
108 reject(err)
109 })
110 })
111 },
112
113 // updateGroupWithId(group_id, group_name, group_owner, group_members, app_id, attributes, invited_members) {
114 update: function(name, owner, attributes, group_id){
115 var update = {}
116
117
118 update["group_name"] = name;
119 update["group_owner"] = owner;
120
121
122 if (attributes) {
123 update["attributes"] = attributes;
124 }
125
126 winston.debug("chat21-node-sdk group.update", update);
127
128
129 var admintoken = "";
130 if (config.admintoken) {
131 admintoken = "?token=" + encodeURIComponent(config.admintoken);
132 }
133
134
135 return new Promise(function(resolve, reject){
136 request.put('/' + plural+'/'+group_id+ admintoken, update).then(function(data){
137 winston.debug("chat21-node-sdk group.updated", data);
138 resolve(data)
139 }).catch(function(err){
140 reject(err)
141 })
142 })
143 },
144
145
146
147 updateAttributes: function(attributes, group_id){
148
149 var update = {}
150
151
152 if (attributes) {
153 update["attributes"] = attributes;
154 }
155
156 var admintoken = "";
157 if (config.admintoken) {
158 admintoken = "?token=" + encodeURIComponent(config.admintoken);
159 }
160
161 winston.debug("chat21-node-sdk group attributes", update);
162
163 return new Promise(function(resolve, reject) {
164 request.put('/' + plural+'/'+group_id+'/attributes' + admintoken, update).then(function(data){
165 winston.debug("chat21-node-sdk data", data);
166 resolve(data)
167 }).catch(function(err){
168 reject(err)
169 })
170 })
171},
172
173
174
175 }
176}
177
178module.exports = Group