mirror of
https://github.com/standardnotes/server
synced 2026-09-11 21:45:28 -04:00
feat: add files server as a service to home-server (#614)
* wip: add files server as a service to home-server * wip: introduce home-server controllers without inversify-express-utils decorators. Move in progress * fix(auth): move remaining home server controllers * fix(syncing-server): home server controllers * fix(revisions): home server controllers * fix: specs * fix: import for legacy controller * fix: remove router debug
This commit is contained in:
+14
-54
@@ -1,6 +1,5 @@
|
||||
import { Request, Response } from 'express'
|
||||
import {
|
||||
BaseHttpController,
|
||||
controller,
|
||||
httpDelete,
|
||||
httpGet,
|
||||
@@ -10,78 +9,39 @@ import {
|
||||
} from 'inversify-express-utils'
|
||||
import TYPES from '../../Bootstrap/Types'
|
||||
import { AuthenticatorsController } from '../../Controller/AuthenticatorsController'
|
||||
import { ControllerContainerInterface } from '@standardnotes/domain-core'
|
||||
import { inject } from 'inversify'
|
||||
import { HomeServerAuthenticatorsController } from './HomeServer/HomeServerAuthenticatorsController'
|
||||
|
||||
@controller('/authenticators')
|
||||
export class InversifyExpressAuthenticatorsController extends BaseHttpController {
|
||||
export class InversifyExpressAuthenticatorsController extends HomeServerAuthenticatorsController {
|
||||
constructor(
|
||||
@inject(TYPES.Auth_AuthenticatorsController) private authenticatorsController: AuthenticatorsController,
|
||||
@inject(TYPES.Auth_ControllerContainer) private controllerContainer: ControllerContainerInterface,
|
||||
@inject(TYPES.Auth_AuthenticatorsController) override authenticatorsController: AuthenticatorsController,
|
||||
) {
|
||||
super()
|
||||
|
||||
this.controllerContainer.register('auth.authenticators.list', this.list.bind(this))
|
||||
this.controllerContainer.register('auth.authenticators.delete', this.delete.bind(this))
|
||||
this.controllerContainer.register(
|
||||
'auth.authenticators.generateRegistrationOptions',
|
||||
this.generateRegistrationOptions.bind(this),
|
||||
)
|
||||
this.controllerContainer.register(
|
||||
'auth.authenticators.verifyRegistrationResponse',
|
||||
this.verifyRegistration.bind(this),
|
||||
)
|
||||
this.controllerContainer.register(
|
||||
'auth.authenticators.generateAuthenticationOptions',
|
||||
this.generateAuthenticationOptions.bind(this),
|
||||
)
|
||||
super(authenticatorsController)
|
||||
}
|
||||
|
||||
@httpGet('/', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
|
||||
async list(_request: Request, response: Response): Promise<results.JsonResult> {
|
||||
const result = await this.authenticatorsController.list({
|
||||
userUuid: response.locals.user.uuid,
|
||||
})
|
||||
|
||||
return this.json(result.data, result.status)
|
||||
override async list(_request: Request, response: Response): Promise<results.JsonResult> {
|
||||
return super.list(_request, response)
|
||||
}
|
||||
|
||||
@httpDelete('/:authenticatorId', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
|
||||
async delete(request: Request, response: Response): Promise<results.JsonResult> {
|
||||
const result = await this.authenticatorsController.delete({
|
||||
userUuid: response.locals.user.uuid,
|
||||
authenticatorId: request.params.authenticatorId,
|
||||
})
|
||||
|
||||
return this.json(result.data, result.status)
|
||||
override async delete(request: Request, response: Response): Promise<results.JsonResult> {
|
||||
return super.delete(request, response)
|
||||
}
|
||||
|
||||
@httpGet('/generate-registration-options', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
|
||||
async generateRegistrationOptions(_request: Request, response: Response): Promise<results.JsonResult> {
|
||||
const result = await this.authenticatorsController.generateRegistrationOptions({
|
||||
username: response.locals.user.email,
|
||||
userUuid: response.locals.user.uuid,
|
||||
})
|
||||
|
||||
return this.json(result.data, result.status)
|
||||
override async generateRegistrationOptions(_request: Request, response: Response): Promise<results.JsonResult> {
|
||||
return super.generateRegistrationOptions(_request, response)
|
||||
}
|
||||
|
||||
@httpPost('/verify-registration', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
|
||||
async verifyRegistration(request: Request, response: Response): Promise<results.JsonResult> {
|
||||
const result = await this.authenticatorsController.verifyRegistrationResponse({
|
||||
userUuid: response.locals.user.uuid,
|
||||
attestationResponse: request.body.attestationResponse,
|
||||
})
|
||||
|
||||
return this.json(result.data, result.status)
|
||||
override async verifyRegistration(request: Request, response: Response): Promise<results.JsonResult> {
|
||||
return super.verifyRegistration(request, response)
|
||||
}
|
||||
|
||||
@httpPost('/generate-authentication-options')
|
||||
async generateAuthenticationOptions(request: Request): Promise<results.JsonResult> {
|
||||
const result = await this.authenticatorsController.generateAuthenticationOptions({
|
||||
username: request.body.username,
|
||||
})
|
||||
|
||||
return this.json(result.data, result.status)
|
||||
override async generateAuthenticationOptions(request: Request): Promise<results.JsonResult> {
|
||||
return super.generateAuthenticationOptions(request)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user