Files
standardnotes-server/packages/auth/src/Infra/InversifyExpressUtils/AnnotatedAdminController.ts
T

80 lines
3.0 KiB
TypeScript

import { Request } from 'express'
import { inject } from 'inversify'
import {
controller,
httpDelete,
httpGet,
httpPost,
results,
} from 'inversify-express-utils'
import TYPES from '../../Bootstrap/Types'
import { BaseAdminController } from './Base/BaseAdminController'
import { CreateOfflineSubscriptionToken } from '../../Domain/UseCase/CreateOfflineSubscriptionToken/CreateOfflineSubscriptionToken'
import { CreateSubscriptionToken } from '../../Domain/UseCase/CreateSubscriptionToken/CreateSubscriptionToken'
import { ClearLoginAttempts } from '../../Domain/UseCase/ClearLoginAttempts'
import { DeleteSetting } from '../../Domain/UseCase/DeleteSetting/DeleteSetting'
import { GetSetting } from './../../Domain/UseCase/GetSetting/GetSetting'
import { UserRepositoryInterface } from '../../Domain/User/UserRepositoryInterface'
@controller('/admin', TYPES.Auth_AdminKeyMiddleware)
export class AnnotatedAdminController extends BaseAdminController {
constructor(
@inject(TYPES.Auth_DeleteSetting) override doDeleteSetting: DeleteSetting,
@inject(TYPES.Auth_GetSetting) override doGetSetting: GetSetting,
@inject(TYPES.Auth_UserRepository) override userRepository: UserRepositoryInterface,
@inject(TYPES.Auth_CreateSubscriptionToken) override createSubscriptionToken: CreateSubscriptionToken,
@inject(TYPES.Auth_CreateOfflineSubscriptionToken)
override createOfflineSubscriptionToken: CreateOfflineSubscriptionToken,
@inject(TYPES.Auth_ClearLoginAttempts) override clearLoginAttempts: ClearLoginAttempts,
) {
super(
doDeleteSetting,
doGetSetting,
userRepository,
createSubscriptionToken,
createOfflineSubscriptionToken,
clearLoginAttempts,
)
}
@httpGet('/user/:email')
override async getUser(request: Request): Promise<results.JsonResult> {
return super.getUser(request)
}
@httpGet('/users/:userUuid/listed-code')
override async getListedCode(request: Request): Promise<results.JsonResult> {
return super.getListedCode(request)
}
@httpDelete('/users/:userUuid/mfa')
override async deleteMFASetting(request: Request): Promise<results.JsonResult> {
return super.deleteMFASetting(request)
}
@httpPost('/users/:userUuid/subscription-token')
override async createToken(request: Request): Promise<results.JsonResult> {
return super.createToken(request)
}
@httpPost('/users/:email/offline-subscription-token')
override async createOfflineToken(request: Request): Promise<results.JsonResult | results.BadRequestResult> {
return super.createOfflineToken(request)
}
@httpPost('/users/:userUuid/email-backups')
override async disableEmailBackups(
request: Request,
): Promise<results.BadRequestErrorMessageResult | results.OkResult> {
return super.disableEmailBackups(request)
}
@httpDelete('/users/:email/login-attempts')
override async deleteLoginAttempts(
request: Request,
): Promise<results.JsonResult | results.OkResult> {
return super.deleteLoginAttempts(request)
}
}