Skip to content

Commit

Permalink
added rest method
Browse files Browse the repository at this point in the history
  • Loading branch information
ggazzo committed Nov 14, 2017
1 parent 330d959 commit afae7f2
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 4 deletions.
25 changes: 25 additions & 0 deletions packages/rocketchat-api/server/v1/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,31 @@ RocketChat.API.v1.addRoute('chat.delete', { authRequired: true }, {
}
});

RocketChat.API.v1.addRoute('chat.syncMessages', { authRequired: true }, {
get() {
const { rid } = this.queryParams;
let lastUpdate = this.queryParams;
lastUpdate = lastUpdate ? new Date(lastUpdate) : lastUpdate;
if (!rid) {
return RocketChat.API.v1.failure('The "rid" query parameter must be provided.');
}
if (!lastUpdate) {
return RocketChat.API.v1.failure('The "lastUpdate" query parameter must be provided.');
}

let result;
Meteor.runAsUser(this.userId, () => {
result = Meteor.call('messages/get', rid, { lastUpdate });
});

if (!result) {
return RocketChat.API.v1.failure();
}

return RocketChat.API.v1.success({result});
}
});

RocketChat.API.v1.addRoute('chat.getMessage', { authRequired: true }, {
get() {
if (!this.queryParams.msgId) {
Expand Down
8 changes: 4 additions & 4 deletions server/publications/messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Meteor.publish('messages', function(rid/*, start*/) {
});

Meteor.methods({
'messages/get'(rid, {start, latestDate = new Date(), oldestDate, inclusive = false, count = 20, unreads= false}) {
'messages/get'(rid, {lastUpdate, latestDate = new Date(), oldestDate, inclusive = false, count = 20, unreads= false}) {
check(rid, String);

const fromId = Meteor.userId();
Expand All @@ -88,10 +88,10 @@ Meteor.methods({
}
};

if (start instanceof Date) {
if (lastUpdate instanceof Date) {
return {
updated: RocketChat.models.Messages.findForUpdates(rid, start, options).fetch(),
deleted: RocketChat.models.Messages.trashFindDeletedAfter(start, {rid}, { ...options, fields: { _id: 1, _deletedAt: 1 }}).fetch()
updated: RocketChat.models.Messages.findForUpdates(rid, lastUpdate, options).fetch(),
deleted: RocketChat.models.Messages.trashFindDeletedAfter(lastUpdate, {rid}, { ...options, fields: { _id: 1, _deletedAt: 1 }}).fetch()
};
}

Expand Down

0 comments on commit afae7f2

Please sign in to comment.