Skip to content

Commit

Permalink
Move rocketchat models (#13027)
Browse files Browse the repository at this point in the history
* Move rocketchat settings to specific package

* WIP: Move models from rocketchat-lib to a specific package (server)

* Move function from rocketchat:lib to rocketchat:utils to use it in rocketchat:models

* Move client models from rocketchat:lib to rocketchat:models

* Fix lint

* Simplify model files

* Fix wrong object assign
  • Loading branch information
MarcosSpessatto authored and rodrigok committed Jan 10, 2019
1 parent 4540085 commit c6ef5e7
Show file tree
Hide file tree
Showing 31 changed files with 247 additions and 114 deletions.
3 changes: 2 additions & 1 deletion .meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -202,4 +202,5 @@ rocketchat:mailmessages
juliancwirko:postcss
littledata:synced-cron
rocketchat:utils
rocketchat:settings
rocketchat:settings
rocketchat:models
1 change: 1 addition & 0 deletions .meteor/versions
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ rocketchat:message-pin@0.0.1
rocketchat:message-snippet@0.0.1
rocketchat:message-star@0.0.1
rocketchat:migrations@0.0.1
rocketchat:models@1.0.0
rocketchat:monitoring@2.30.2_3
rocketchat:nrr@1.0.0
rocketchat:oauth2-server@2.0.0
Expand Down
6 changes: 0 additions & 6 deletions packages/rocketchat-lib/client/models/Avatars.js

This file was deleted.

7 changes: 0 additions & 7 deletions packages/rocketchat-lib/client/models/Uploads.js

This file was deleted.

6 changes: 0 additions & 6 deletions packages/rocketchat-lib/client/models/UserDataFiles.js

This file was deleted.

11 changes: 11 additions & 0 deletions packages/rocketchat-lib/client/models/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Avatars } from 'meteor/rocketchat:models';
import { Base as _Base } from 'meteor/rocketchat:models';
import { Uploads } from 'meteor/rocketchat:models';
import { UserDataFiles } from 'meteor/rocketchat:models';

Object.assign(RocketChat.models, {
_Base,
Avatars,
Uploads,
UserDataFiles,
});
32 changes: 2 additions & 30 deletions packages/rocketchat-lib/lib/getDefaultSubscriptionPref.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,3 @@
RocketChat.getDefaultSubscriptionPref = function _getDefaultSubscriptionPref(userPref) {
const subscription = {};
import { getDefaultSubscriptionPref } from 'meteor/rocketchat:utils';

const {
desktopNotifications,
mobileNotifications,
emailNotificationMode,
highlights,
} = (userPref.settings && userPref.settings.preferences) || {};

if (Array.isArray(highlights) && highlights.length) {
subscription.userHighlights = highlights;
}

if (desktopNotifications && desktopNotifications !== 'default') {
subscription.desktopNotifications = desktopNotifications;
subscription.desktopPrefOrigin = 'user';
}

if (mobileNotifications && mobileNotifications !== 'default') {
subscription.mobilePushNotifications = mobileNotifications;
subscription.mobilePrefOrigin = 'user';
}

if (emailNotificationMode && emailNotificationMode !== 'default') {
subscription.emailNotifications = emailNotificationMode;
subscription.emailPrefOrigin = 'user';
}

return subscription;
};
RocketChat.getDefaultSubscriptionPref = getDefaultSubscriptionPref;
17 changes: 3 additions & 14 deletions packages/rocketchat-lib/package.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Package.onUse(function(api) {
api.use('service-configuration');
api.use('check');
api.use('rocketchat:utils');
api.use('rocketchat:models');
api.use('rocketchat:accounts');
api.use('modules');
api.use('rocketchat:i18n');
Expand Down Expand Up @@ -134,17 +135,7 @@ Package.onUse(function(api) {
api.addFiles('server/lib/passwordPolicy.js', 'server');

// SERVER MODELS
api.addFiles('server/models/_Base.js', 'server');
api.addFiles('server/models/Avatars.js', 'server');
api.addFiles('server/models/Messages.js', 'server');
api.addFiles('server/models/Reports.js', 'server');
api.addFiles('server/models/Rooms.js', 'server');
api.addFiles('server/models/Settings.js', 'server');
api.addFiles('server/models/Subscriptions.js', 'server');
api.addFiles('server/models/Uploads.js', 'server');
api.addFiles('server/models/Users.js', 'server');
api.addFiles('server/models/ExportOperations.js', 'server');
api.addFiles('server/models/UserDataFiles.js', 'server');
api.addFiles('server/models/index.js', 'server');

api.addFiles('server/oauth/oauth.js', 'server');
api.addFiles('server/oauth/facebook.js', 'server');
Expand Down Expand Up @@ -243,9 +234,7 @@ Package.onUse(function(api) {
api.addFiles('client/CustomTranslations.js', 'client');

// CLIENT MODELS
api.addFiles('client/models/_Base.js', 'client');
api.addFiles('client/models/Avatars.js', 'client');
api.addFiles('client/models/Uploads.js', 'client');
api.addFiles('client/models/index.js', 'client');

// CLIENT VIEWS
api.addFiles('client/views/customFieldsForm.html', 'client');
Expand Down
25 changes: 25 additions & 0 deletions packages/rocketchat-lib/server/models/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Avatars } from 'meteor/rocketchat:models';
import { Base as _Base } from 'meteor/rocketchat:models';
import { ExportOperations } from 'meteor/rocketchat:models';
import { Messages } from 'meteor/rocketchat:models';
import { Reports } from 'meteor/rocketchat:models';
import { Rooms } from 'meteor/rocketchat:models';
import { Settings } from 'meteor/rocketchat:models';
import { Subscriptions } from 'meteor/rocketchat:models';
import { Uploads } from 'meteor/rocketchat:models';
import { UserDataFiles } from 'meteor/rocketchat:models';
import { Users } from 'meteor/rocketchat:models';

Object.assign(RocketChat.models, {
_Base,
Avatars,
ExportOperations,
Messages,
Reports,
Rooms,
Settings,
Subscriptions,
Uploads,
UserDataFiles,
Users,
});
11 changes: 11 additions & 0 deletions packages/rocketchat-models/client/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Base } from './models/_Base';
import Avatars from './models/Avatars';
import Uploads from './models/Uploads';
import UserDataFiles from './models/UserDataFiles';

export {
Base,
Avatars,
Uploads,
UserDataFiles,
};
10 changes: 10 additions & 0 deletions packages/rocketchat-models/client/models/Avatars.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Base } from './_Base';

export class Avatars extends Base {
constructor() {
super();
this._initModel('avatars');
}
}

export default new Avatars();
10 changes: 10 additions & 0 deletions packages/rocketchat-models/client/models/Uploads.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Base } from './_Base';

export class Uploads extends Base {
constructor() {
super();
this._initModel('uploads');
}
}

export default new Uploads();
10 changes: 10 additions & 0 deletions packages/rocketchat-models/client/models/UserDataFiles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Base } from './_Base';

export class UserDataFiles extends Base {
constructor() {
super();
this._initModel('userDataFiles');
}
}

export default new UserDataFiles();
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { check } from 'meteor/check';
import { Mongo } from 'meteor/mongo';

RocketChat.models._Base = class {
export class Base {

_baseName() {
return 'rocketchat_';
Expand Down Expand Up @@ -52,4 +52,4 @@ RocketChat.models._Base = class {

tryDropIndex() {}

};
}
17 changes: 17 additions & 0 deletions packages/rocketchat-models/package.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Package.describe({
name: 'rocketchat:models',
summary: 'RocketChat Models',
version: '1.0.0',
git: '',
});

Package.onUse(function(api) {
api.use([
'ecmascript',
'rocketchat:settings',
'rocketchat:utils',
'konecty:multiple-instances-status',
]);
api.mainModule('client/index.js', 'client');
api.mainModule('server/index.js', 'server');
});
27 changes: 27 additions & 0 deletions packages/rocketchat-models/server/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { Base } from './models/_Base';
import { BaseDb } from './models/_BaseDb';
import Avatars from './models/Avatars';
import ExportOperations from './models/ExportOperations';
import Messages from './models/Messages';
import Reports from './models/Reports';
import Rooms from './models/Rooms';
import Settings from './models/Settings';
import Subscriptions from './models/Subscriptions';
import Uploads from './models/Uploads';
import UserDataFiles from './models/UserDataFiles';
import Users from './models/Users';

export {
Base,
BaseDb,
Avatars,
ExportOperations,
Messages,
Reports,
Rooms,
Settings,
Subscriptions,
Uploads,
UserDataFiles,
Users,
};
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import _ from 'underscore';
import s from 'underscore.string';
import { InstanceStatus } from 'meteor/konecty:multiple-instances-status';
import { Base } from './_Base';

RocketChat.models.Avatars = new class extends RocketChat.models._Base {
export class Avatars extends Base {
constructor() {
super('avatars');

Expand Down Expand Up @@ -110,4 +111,6 @@ RocketChat.models.Avatars = new class extends RocketChat.models._Base {
return this.remove({ _id: fileId });
}
}
};
}

export default new Avatars();
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Base } from './_Base';
import _ from 'underscore';

RocketChat.models.ExportOperations = new class ModelExportOperations extends RocketChat.models._Base {
export class ExportOperations extends Base {
constructor() {
super('export_operations');

Expand Down Expand Up @@ -75,4 +76,6 @@ RocketChat.models.ExportOperations = new class ModelExportOperations extends Roc
removeById(_id) {
return this.remove(_id);
}
};
}

export default new ExportOperations();
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { Meteor } from 'meteor/meteor';
import { Match } from 'meteor/check';
import { settings } from 'meteor/rocketchat:settings';
import { Base } from './_Base';
import Rooms from './Rooms';
import Users from './Users';
import _ from 'underscore';

RocketChat.models.Messages = new class extends RocketChat.models._Base {
export class Messages extends Base {
constructor() {
super('message');

Expand Down Expand Up @@ -366,7 +370,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {
}

cloneAndSaveAsHistoryById(_id) {
const me = RocketChat.models.Users.findOneById(Meteor.userId());
const me = Users.findOneById(Meteor.userId());
const record = this.findOneById(_id);
record._hidden = true;
record.parent = record._id;
Expand Down Expand Up @@ -580,7 +584,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {

// INSERT
createWithTypeRoomIdMessageAndUser(type, roomId, message, user, extraData) {
const room = RocketChat.models.Rooms.findOneById(roomId, { fields: { sysMes: 1 } });
const room = Rooms.findOneById(roomId, { fields: { sysMes: 1 } });
if ((room != null ? room.sysMes : undefined) === false) {
return;
}
Expand All @@ -596,20 +600,20 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {
groupable: false,
};

if (RocketChat.settings.get('Message_Read_Receipt_Enabled')) {
if (settings.get('Message_Read_Receipt_Enabled')) {
record.unread = true;
}

_.extend(record, extraData);

record._id = this.insertOrUpsert(record);
RocketChat.models.Rooms.incMsgCountById(room._id, 1);
Rooms.incMsgCountById(room._id, 1);
return record;
}

createNavigationHistoryWithRoomIdMessageAndUser(roomId, message, user, extraData) {
const type = 'livechat_navigation_history';
const room = RocketChat.models.Rooms.findOneById(roomId, { fields: { sysMes: 1 } });
const room = Rooms.findOneById(roomId, { fields: { sysMes: 1 } });
if ((room != null ? room.sysMes : undefined) === false) {
return;
}
Expand All @@ -625,7 +629,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {
groupable: false,
};

if (RocketChat.settings.get('Message_Read_Receipt_Enabled')) {
if (settings.get('Message_Read_Receipt_Enabled')) {
record.unread = true;
}

Expand Down Expand Up @@ -753,7 +757,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {
query['u.username'] = { $in: users };
}

const messagesToDelete = RocketChat.models.Messages.find(query, {
const messagesToDelete = this.find(query, {
fields: {
_id: 1,
},
Expand Down Expand Up @@ -830,4 +834,6 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {
},
});
}
};
}

export default new Messages();
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Base } from './_Base';
import _ from 'underscore';

RocketChat.models.Reports = new class extends RocketChat.models._Base {
export class Reports extends Base {
constructor() {
super('reports');
}
Expand All @@ -15,4 +16,6 @@ RocketChat.models.Reports = new class extends RocketChat.models._Base {
record._id = this.insert(record);
return record;
}
};
}

export default new Reports();
Loading

0 comments on commit c6ef5e7

Please sign in to comment.