diff --git a/apps/meteor/app/api/server/helpers/insertUserObject.ts b/apps/meteor/app/api/server/helpers/insertUserObject.ts index 2516579cdb6f..f3ea765534bf 100644 --- a/apps/meteor/app/api/server/helpers/insertUserObject.ts +++ b/apps/meteor/app/api/server/helpers/insertUserObject.ts @@ -1,11 +1,12 @@ +import { Meteor } from 'meteor/meteor'; + import { Users } from '../../../models/server'; import { API } from '../api'; API.helperMethods.set( 'insertUserObject', - function _addUserToObject({ object, userId }: { object: { [key: string]: unknown }; userId: string }) { + Meteor.bindEnvironment(function _addUserToObject({ object, userId }: { object: { [key: string]: unknown }; userId: string }) { // Maybe `object: { [key: string]: Meteor.User }`? - const user = Users.findOneById(userId); if (user) { object.user = { @@ -16,5 +17,5 @@ API.helperMethods.set( } return object; - }, + }), ); diff --git a/apps/meteor/app/api/server/v1/im.ts b/apps/meteor/app/api/server/v1/im.ts index 47e1f0df983b..76542f1e5582 100644 --- a/apps/meteor/app/api/server/v1/im.ts +++ b/apps/meteor/app/api/server/v1/im.ts @@ -210,22 +210,23 @@ API.v1.addRoute( const ourQuery = query ? { rid: room._id, ...query } : { rid: room._id }; - const files = await Uploads.find(ourQuery, { - sort: sort || { name: 1 }, - skip: offset, - limit: count, - projection: fields, - }) - .map((file): IImFilesObject | (IImFilesObject & { user: Pick }) => { - if (file.userId) { - return this.insertUserObject }>({ - object: { ...file }, - userId: file.userId, - }); - } - return file; - }) - .toArray(); + const files = ( + await Uploads.find(ourQuery, { + sort: sort || { name: 1 }, + skip: offset, + limit: count, + projection: fields, + }).toArray() + ).map((file): IImFilesObject | (IImFilesObject & { user: Pick }) => { + if (file.userId) { + return this.insertUserObject }>({ + object: { ...file }, + userId: file.userId, + }); + } + return file; + }); + const total = await Uploads.find(ourQuery).count(); return API.v1.success({ files, @@ -252,14 +253,15 @@ API.v1.addRoute( const objectParams = { rid: room._id, - latest: latest ? new Date(latest).toISOString() : new Date().toISOString(), - oldest: oldest && new Date(oldest).toISOString(), + latest: latest ? new Date(latest) : new Date(), + oldest: oldest && new Date(oldest), inclusive: inclusive === 'true', offset, count, unreads: unreads === 'true', showThreadMessages: showThreadMessages === 'true', }; + const result = Meteor.call('getChannelHistory', objectParams); if (!result) { diff --git a/packages/rest-typings/src/v1/dm/DmFileProps.ts b/packages/rest-typings/src/v1/dm/DmFileProps.ts index fee5b45334f3..fa89a05523bd 100644 --- a/packages/rest-typings/src/v1/dm/DmFileProps.ts +++ b/packages/rest-typings/src/v1/dm/DmFileProps.ts @@ -27,7 +27,7 @@ export const isDmFileProps = ajv.compile({ type: 'string', }, sort: { - type: 'number', + type: 'string', }, count: { type: 'number', @@ -49,7 +49,7 @@ export const isDmFileProps = ajv.compile({ type: 'string', }, sort: { - type: 'number', + type: 'string', }, count: { type: 'number', diff --git a/packages/rest-typings/src/v1/dm/DmMembersProps.ts b/packages/rest-typings/src/v1/dm/DmMembersProps.ts index b5bdc99a9d7a..f0605e35e892 100644 --- a/packages/rest-typings/src/v1/dm/DmMembersProps.ts +++ b/packages/rest-typings/src/v1/dm/DmMembersProps.ts @@ -39,7 +39,7 @@ export const isDmMemberProps = ajv.compile({ type: 'string', }, sort: { - type: 'number', + type: 'string', }, count: { type: 'number', @@ -70,7 +70,7 @@ export const isDmMemberProps = ajv.compile({ type: 'string', }, sort: { - type: 'number', + type: 'string', }, count: { type: 'number', diff --git a/packages/rest-typings/src/v1/dm/DmMessagesProps.ts b/packages/rest-typings/src/v1/dm/DmMessagesProps.ts index 65144bc9036a..cc913c87e19e 100644 --- a/packages/rest-typings/src/v1/dm/DmMessagesProps.ts +++ b/packages/rest-typings/src/v1/dm/DmMessagesProps.ts @@ -32,7 +32,7 @@ export const isDmMessagesProps = ajv.compile({ type: 'string', }, sort: { - type: 'number', + type: 'string', }, count: { type: 'number', @@ -57,7 +57,7 @@ export const isDmMessagesProps = ajv.compile({ type: 'string', }, sort: { - type: 'number', + type: 'string', }, count: { type: 'number',