From 049a303a4d6dc507304b7e29dd404d5ac49b4f0c Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Thu, 7 Apr 2022 15:52:27 -0300 Subject: [PATCH] Convert other indexes to same pattern --- app/models/server/raw/Banners.ts | 10 +++------- app/models/server/raw/BannersDismiss.ts | 8 +++----- app/models/server/raw/Nps.ts | 8 +++----- app/models/server/raw/NpsVote.ts | 8 +++----- app/models/server/raw/Team.ts | 20 +++----------------- app/models/server/raw/TeamMember.ts | 18 ++++++++++-------- app/models/server/raw/WebdavAccounts.ts | 8 +++----- 7 files changed, 28 insertions(+), 52 deletions(-) diff --git a/app/models/server/raw/Banners.ts b/app/models/server/raw/Banners.ts index c0285527d78d..6b1db0a94c38 100644 --- a/app/models/server/raw/Banners.ts +++ b/app/models/server/raw/Banners.ts @@ -1,16 +1,12 @@ -import { Collection, Cursor, FindOneOptions, UpdateWriteOpResult, WithoutProjection, InsertOneWriteOpResult } from 'mongodb'; +import { Cursor, FindOneOptions, UpdateWriteOpResult, WithoutProjection, InsertOneWriteOpResult } from 'mongodb'; import { BannerPlatform, IBanner } from '../../../../definition/IBanner'; import { BaseRaw } from './BaseRaw'; type T = IBanner; export class BannersRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndexes([{ key: { platform: 1, startAt: 1, expireAt: 1 } }]); - - this.col.createIndexes([{ key: { platform: 1, startAt: 1, expireAt: 1, active: 1 } }]); + protected modelIndexes() { + return [{ key: { platform: 1, startAt: 1, expireAt: 1 } }, { key: { platform: 1, startAt: 1, expireAt: 1, active: 1 } }]; } create(doc: IBanner): Promise> { diff --git a/app/models/server/raw/BannersDismiss.ts b/app/models/server/raw/BannersDismiss.ts index 61325e5423f3..007a7e155143 100644 --- a/app/models/server/raw/BannersDismiss.ts +++ b/app/models/server/raw/BannersDismiss.ts @@ -1,13 +1,11 @@ -import { Collection, Cursor, FindOneOptions, WithoutProjection } from 'mongodb'; +import { Cursor, FindOneOptions, WithoutProjection } from 'mongodb'; import { IBannerDismiss } from '../../../../definition/IBanner'; import { BaseRaw } from './BaseRaw'; export class BannersDismissRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndexes([{ key: { userId: 1, bannerId: 1 } }]); + modelIndexes() { + return [{ key: { userId: 1, bannerId: 1 } }]; } findByUserIdAndBannerId(userId: string, bannerIds: string[]): Cursor; diff --git a/app/models/server/raw/Nps.ts b/app/models/server/raw/Nps.ts index daf123b14d1c..513103057228 100644 --- a/app/models/server/raw/Nps.ts +++ b/app/models/server/raw/Nps.ts @@ -1,14 +1,12 @@ -import { UpdateWriteOpResult, Collection } from 'mongodb'; +import { UpdateWriteOpResult } from 'mongodb'; import { BaseRaw } from './BaseRaw'; import { INps, NPSStatus } from '../../../../definition/INps'; type T = INps; export class NpsRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndexes([{ key: { status: 1, expireAt: 1 } }]); + modelIndexes() { + return [{ key: { status: 1, expireAt: 1 } }]; } // get expired surveys still in progress diff --git a/app/models/server/raw/NpsVote.ts b/app/models/server/raw/NpsVote.ts index 5aa9c56bda88..19a6842894c0 100644 --- a/app/models/server/raw/NpsVote.ts +++ b/app/models/server/raw/NpsVote.ts @@ -1,14 +1,12 @@ -import { ObjectId, Collection, Cursor, FindOneOptions, UpdateWriteOpResult, WithoutProjection } from 'mongodb'; +import { ObjectId, Cursor, FindOneOptions, UpdateWriteOpResult, WithoutProjection } from 'mongodb'; import { INpsVote, INpsVoteStatus } from '../../../../definition/INps'; import { BaseRaw } from './BaseRaw'; type T = INpsVote; export class NpsVoteRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndexes([{ key: { npsId: 1, status: 1, sentAt: 1 } }, { key: { npsId: 1, identifier: 1 } }]); + modelIndexes() { + return [{ key: { npsId: 1, status: 1, sentAt: 1 } }, { key: { npsId: 1, identifier: 1 } }]; } findNotSentByNpsId(npsId: string, options?: WithoutProjection>): Cursor { diff --git a/app/models/server/raw/Team.ts b/app/models/server/raw/Team.ts index 15beb82c9f9d..d4037ac8001c 100644 --- a/app/models/server/raw/Team.ts +++ b/app/models/server/raw/Team.ts @@ -1,25 +1,11 @@ -import { - Collection, - WithoutProjection, - FindOneOptions, - Cursor, - UpdateWriteOpResult, - DeleteWriteOpResultObject, - FilterQuery, -} from 'mongodb'; +import { WithoutProjection, FindOneOptions, Cursor, UpdateWriteOpResult, DeleteWriteOpResultObject, FilterQuery } from 'mongodb'; import { BaseRaw } from './BaseRaw'; import { ITeam, TEAM_TYPE } from '../../../../definition/ITeam'; export class TeamRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndex({ name: 1 }, { unique: true }); - - // this.col.createIndexes([ - // { key: { status: 1, expireAt: 1 } }, - // ]); + protected modelIndexes() { + return [{ key: { name: 1 }, unique: true }]; } findByNames(names: Array): Cursor; diff --git a/app/models/server/raw/TeamMember.ts b/app/models/server/raw/TeamMember.ts index 16a5c1a76baa..d6d4b07a8afc 100644 --- a/app/models/server/raw/TeamMember.ts +++ b/app/models/server/raw/TeamMember.ts @@ -1,5 +1,4 @@ import { - Collection, WithoutProjection, FindOneOptions, Cursor, @@ -15,13 +14,16 @@ import type { IUser, IRole } from '../../../../definition/IUser'; type T = ITeamMember; export class TeamMemberRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndexes([{ key: { teamId: 1 } }]); - - // teamId => userId should be unique - this.col.createIndex({ teamId: 1, userId: 1 }, { unique: true }); + protected modelIndexes() { + return [ + { + key: { teamId: 1 }, + }, + { + key: { teamId: 1, userId: 1 }, + unique: true, + }, + ]; } findByUserId(userId: string): Cursor; diff --git a/app/models/server/raw/WebdavAccounts.ts b/app/models/server/raw/WebdavAccounts.ts index 9c3d0a8b0fdd..9bda5ee83e93 100644 --- a/app/models/server/raw/WebdavAccounts.ts +++ b/app/models/server/raw/WebdavAccounts.ts @@ -1,7 +1,7 @@ /** * Webdav Accounts model */ -import type { Collection, FindOneOptions, Cursor, DeleteWriteOpResultObject } from 'mongodb'; +import type { FindOneOptions, Cursor, DeleteWriteOpResultObject } from 'mongodb'; import { BaseRaw } from './BaseRaw'; import { IWebdavAccount } from '../../../../definition/IWebdavAccount'; @@ -9,10 +9,8 @@ import { IWebdavAccount } from '../../../../definition/IWebdavAccount'; type T = IWebdavAccount; export class WebdavAccountsRaw extends BaseRaw { - constructor(public readonly col: Collection, trash?: Collection) { - super(col, trash); - - this.col.createIndex({ userId: 1 }); + protected modelIndexes() { + return [{ key: { userId: 1 } }]; } findOneByIdAndUserId(_id: string, userId: string, options: FindOneOptions): Promise {