-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdataStore.js
More file actions
57 lines (51 loc) · 1.15 KB
/
dataStore.js
File metadata and controls
57 lines (51 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
const data = {
users: {},
channels: {},
dms: {},
mpims: {},
};
const slackData = {
users: {},
channels: [],
groups: [],
channelUsers: {},
channelAdmins: {},
dms: [],
mpims: [],
conversations: {},
}
const updateData = (type, mattermostId, slackId) => {
data[type] = {
...data[type],
[mattermostId]: slackId
}
}
const updateSlackData = (type, id, data, push = false) => {
if (push) {
slackData[type].push(data)
} else {
slackData[type][id] = data
}
}
/**
*
* @param {string|Array} members
* @returns {string|Array}
*/
const getSlackMembers = (members) => {
return Array.isArray(members) ? members.map(member => data.users[member]) : data.users[members]
}
const setConversation = (id, date, data) => {
if (!slackData.conversations.hasOwnProperty(id)) slackData.conversations[id] = {}
if (!slackData.conversations[id].hasOwnProperty(date)) slackData.conversations[id][date] = []
slackData.conversations[id][date].push(data)
}
export {
data,
slackData,
updateData,
updateSlackData,
getData,
getSlackMembers,
setConversation,
}