Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
import { Meteor } from 'meteor/meteor';
import {
isUploadImportFileParamsPOST,
isDownloadPublicImportFileParamsPOST,
isStartImportParamsPOST,
isGetImportFileDataParamsGET,
isGetImportProgressParamsGET,
isGetLatestImportOperationsParamsGET,
isDownloadPendingFilesParamsPOST,
isDownloadPendingAvatarsParamsPOST,
isGetCurrentImportOperationParamsGET,
} from '@rocket.chat/rest-typings';

import { API } from '../api';
import { hasPermission } from '../../../authorization/server';
Expand All @@ -7,7 +18,10 @@ import { Importers } from '../../../importer/server';

API.v1.addRoute(
'uploadImportFile',
{ authRequired: true },
{
authRequired: true,
validateParams: isUploadImportFileParamsPOST,
},
{
post() {
const { binaryContent, contentType, fileName, importerKey } = this.bodyParams;
Expand All @@ -19,7 +33,10 @@ API.v1.addRoute(

API.v1.addRoute(
'downloadPublicImportFile',
{ authRequired: true },
{
authRequired: true,
validateParams: isDownloadPublicImportFileParamsPOST,
},
{
post() {
const { fileUrl, importerKey } = this.bodyParams;
Expand All @@ -35,7 +52,10 @@ API.v1.addRoute(

API.v1.addRoute(
'startImport',
{ authRequired: true },
{
authRequired: true,
validateParams: isStartImportParamsPOST,
},
{
post() {
const { input } = this.bodyParams;
Expand All @@ -51,7 +71,10 @@ API.v1.addRoute(

API.v1.addRoute(
'getImportFileData',
{ authRequired: true },
{
authRequired: true,
validateParams: isGetImportFileDataParamsGET,
},
{
get() {
let result;
Expand All @@ -66,7 +89,10 @@ API.v1.addRoute(

API.v1.addRoute(
'getImportProgress',
{ authRequired: true },
{
authRequired: true,
validateParams: isGetImportProgressParamsGET,
},
{
get() {
let result;
Expand All @@ -81,7 +107,10 @@ API.v1.addRoute(

API.v1.addRoute(
'getLatestImportOperations',
{ authRequired: true },
{
authRequired: true,
validateParams: isGetLatestImportOperationsParamsGET,
},
{
get() {
let result;
Expand All @@ -96,7 +125,10 @@ API.v1.addRoute(

API.v1.addRoute(
'downloadPendingFiles',
{ authRequired: true },
{
authRequired: true,
validateParams: isDownloadPendingFilesParamsPOST,
},
{
post() {
if (!this.userId) {
Expand Down Expand Up @@ -129,7 +161,10 @@ API.v1.addRoute(

API.v1.addRoute(
'downloadPendingAvatars',
{ authRequired: true },
{
authRequired: true,
validateParams: isDownloadPendingAvatarsParamsPOST,
},
{
post() {
if (!this.userId) {
Expand Down Expand Up @@ -162,7 +197,10 @@ API.v1.addRoute(

API.v1.addRoute(
'getCurrentImportOperation',
{ authRequired: true },
{
authRequired: true,
validateParams: isGetCurrentImportOperationParamsGET,
},
{
get() {
if (!this.userId) {
Expand Down
9 changes: 9 additions & 0 deletions packages/rest-typings/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,12 @@ export * from './v1/users/UsersSetAvatarParamsPOST';
export * from './v1/users/UsersSetPreferenceParamsPOST';
export * from './v1/users/UsersUpdateOwnBasicInfoParamsPOST';
export * from './v1/users/UsersUpdateParamsPOST';
export * from './v1/import/UploadImportFileParamsPOST';
export * from './v1/import/DownloadPublicImportFileParamsPOST';
export * from './v1/import/StartImportParamsPOST';
export * from './v1/import/GetImportFileDataParamsGET';
export * from './v1/import/GetImportProgressParamsGET';
export * from './v1/import/GetLatestImportOperationsParamsGET';
export * from './v1/import/DownloadPendingFilesParamsPOST';
export * from './v1/import/DownloadPendingAvatarsParamsPOST';
export * from './v1/import/GetCurrentImportOperationParamsGET';
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type DownloadPendingAvatarsParamsPOST = {
userId: string;
count: number;
};

const DownloadPendingAvatarsParamsPOSTSchema = {
type: 'object',
properties: {
userId: {
type: 'string',
},
count: {
type: 'number',
},
},
additionalProperties: false,
required: ['userId', 'count'],
};

export const isDownloadPendingAvatarsParamsPOST = ajv.compile<DownloadPendingAvatarsParamsPOST>(DownloadPendingAvatarsParamsPOSTSchema);
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type DownloadPendingFilesParamsPOST = {
userId: string;
count: number;
};

const DownloadPendingFilesParamsPOSTSchema = {
type: 'object',
properties: {
userId: {
type: 'string',
},
count: {
type: 'number',
},
},
additionalProperties: false,
required: ['userId', 'count'],
};

export const isDownloadPendingFilesParamsPOST = ajv.compile<DownloadPendingFilesParamsPOST>(DownloadPendingFilesParamsPOSTSchema);
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type DownloadPublicImportFileParamsPOST = {
fileUrl: string;
importerKey: string;
};

const DownloadPublicImportFileParamsPostSchema = {
type: 'object',
properties: {
fileUrl: {
type: 'string',
},
importerKey: {
type: 'string',
},
},
additionalProperties: false,
required: ['fileUrl', 'importerKey'],
};

export const isDownloadPublicImportFileParamsPOST = ajv.compile<DownloadPublicImportFileParamsPOST>(
DownloadPublicImportFileParamsPostSchema,
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type GetCurrentImportOperationParamsGET = {
userId: string;
operation: string;
};

const GetCurrentImportOperationParamsGETSchema = {
type: 'object',
properties: {
userId: {
type: 'string',
},
operation: {
type: 'string',
},
},
additionalProperties: false,
required: ['userId', 'operation'],
};

export const isGetCurrentImportOperationParamsGET = ajv.compile<GetCurrentImportOperationParamsGET>(
GetCurrentImportOperationParamsGETSchema,
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type GetImportFileDataParamsGET = {
userId: string;
};

const GetImportFileDataParamsGETSchema = {
type: 'object',
properties: {
userId: {
type: 'string',
},
},
additionalProperties: false,
required: ['userId'],
};

export const isGetImportFileDataParamsGET = ajv.compile<GetImportFileDataParamsGET>(GetImportFileDataParamsGETSchema);
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type GetImportProgressParamsGET = {
userId: string;
};

const GetImportProgressParamsGETSchema = {
type: 'object',
properties: {
userId: {
type: 'string',
},
},
additionalProperties: false,
required: ['userId'],
};

export const isGetImportProgressParamsGET = ajv.compile<GetImportProgressParamsGET>(GetImportProgressParamsGETSchema);
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type GetLatestImportOperationsParamsGET = {
userId: string;
};

const GetLatestImportOperationsParamsGETSchema = {
type: 'object',
properties: {
userId: {
type: 'string',
},
},
additionalProperties: false,
required: ['userId'],
};

export const isGetLatestImportOperationsParamsGET = ajv.compile<GetLatestImportOperationsParamsGET>(
GetLatestImportOperationsParamsGETSchema,
);
22 changes: 22 additions & 0 deletions packages/rest-typings/src/v1/import/StartImportParamsPOST.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import Ajv, { JSONSchemaType } from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type StartImportParamsPOST = {
input: string;
};

const StartImportParamsPostSchema: JSONSchemaType<StartImportParamsPOST> = {
type: 'object',
properties: {
input: {
type: 'string',
},
},
additionalProperties: false,
required: ['input'],
};

export const isStartImportParamsPOST = ajv.compile<StartImportParamsPOST>(StartImportParamsPostSchema);
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import Ajv from 'ajv';

const ajv = new Ajv({
coerceTypes: true,
});

export type UploadImportFileParamsPOST = {
binaryContent: string;
contentType: string;
fileName: string;
importerKey: string;
};

const UploadImportFileParamsPostSchema = {
type: 'object',
properties: {
binaryContent: {
type: 'string',
},
contentType: {
type: 'string',
},
fileName: {
type: 'string',
},
importerKey: {
type: 'string',
},
},
additionalProperties: false,
required: ['binaryContent', 'contentType', 'fileName', 'importerKey'],
};

export const isUploadImportFileParamsPOST = ajv.compile<UploadImportFileParamsPOST>(UploadImportFileParamsPostSchema);
2 changes: 1 addition & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7690,7 +7690,7 @@ __metadata:
human-interval: ~1.0.0
moment-timezone: ~0.5.27
mongodb: ~3.5.0
checksum: acb4ebb7e7356f6e53e810d821eb6aa3d88bbfb9e85183e707517bee6d1eea1f189f38bdf0dd2b91360492ab7643134d510c320d2523d86596498ab98e59735b
checksum: cc8c1bbba7545628d9d039c58e701ff65cf07f241f035b731716eec0d5ef906ce09d60c3b321bbfb9e6c641994d1afd23aaeb92d645b33bf7be9942f13574173
languageName: node
linkType: hard

Expand Down