From bcd42ad958159d1501b8f9a3df0f4a1ff1076f5b Mon Sep 17 00:00:00 2001 From: nztqa Date: Sun, 9 Jul 2017 14:59:58 +0900 Subject: Add integrations model --- models/integrations.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 models/integrations.js (limited to 'models') diff --git a/models/integrations.js b/models/integrations.js new file mode 100644 index 00000000..b9bf248f --- /dev/null +++ b/models/integrations.js @@ -0,0 +1,54 @@ +Integrations = new Mongo.Collection('integrations'); + +Integrations.attachSchema(new SimpleSchema({ + enabled: { + type: Boolean, + defaultValue: true, + }, + title: { + type: String, + optional: true, + }, + type: { + type: String, + }, + url: { // URL validation regex (https://mathiasbynens.be/demo/url-regex) + type: String, + }, + token: { + type: String, + optional: true, + }, + boardId: { + type: String, + }, + createdAt: { + type: Date, + denyUpdate: false, + autoValue() { // eslint-disable-line consistent-return + if (this.isInsert) { + return new Date(); + } else { + this.unset(); + } + }, + }, + userId: { + type: String, + autoValue() { // eslint-disable-line consistent-return + if (this.isInsert || this.isUpdate) { + return this.userId; + } + }, + }, +})); + +Integrations.allow({ + insert(userId, doc) { + return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + }, + update(userId, doc) { + return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + }, + fetch: ['boardId'], +}); -- cgit v1.2.3-1-g7c22