Files
standardnotes-server/packages/auth/src/Infra/InversifyExpressUtils/Base/BaseFeaturesController.ts
T
Karol SójkoandGitHub 56f0aef21d fix: controller naming (#678)
* fix: rename home server controllers to base controllers

* fix: rename inversify express controllers to annotated controllers
2023-08-01 09:34:52 +02:00

43 lines
1.2 KiB
TypeScript

import { ControllerContainerInterface } from '@standardnotes/domain-core'
import { Request, Response } from 'express'
import { GetUserFeatures } from '../../../Domain/UseCase/GetUserFeatures/GetUserFeatures'
import { BaseHttpController, results } from 'inversify-express-utils'
export class BaseFeaturesController extends BaseHttpController {
constructor(
protected doGetUserFeatures: GetUserFeatures,
private controllerContainer?: ControllerContainerInterface,
) {
super()
if (this.controllerContainer !== undefined) {
this.controllerContainer.register('auth.users.getFeatures', this.getFeatures.bind(this))
}
}
async getFeatures(request: Request, response: Response): Promise<results.JsonResult> {
if (request.params.userUuid !== response.locals.user.uuid) {
return this.json(
{
error: {
message: 'Operation not allowed.',
},
},
401,
)
}
const result = await this.doGetUserFeatures.execute({
userUuid: request.params.userUuid,
offline: false,
})
if (result.success) {
return this.json(result)
}
return this.json(result, 400)
}
}