mirror of
https://github.com/standardnotes/server
synced 2026-08-02 12:15:56 -04:00
* feat: add designating a survivor in shared vault * add designated survivor property to http representation * fix: specs * fix: more specs * fix: another spec fix * fix: yet another spec fix
45 lines
2.2 KiB
TypeScript
45 lines
2.2 KiB
TypeScript
import { controller, httpDelete, httpGet, httpPost, results } from 'inversify-express-utils'
|
|
import { inject } from 'inversify'
|
|
import { MapperInterface, SharedVaultUser } from '@standardnotes/domain-core'
|
|
import { Request, Response } from 'express'
|
|
|
|
import { BaseSharedVaultUsersController } from './Base/BaseSharedVaultUsersController'
|
|
import TYPES from '../../Bootstrap/Types'
|
|
import { SharedVaultUserHttpRepresentation } from '../../Mapping/Http/SharedVaultUserHttpRepresentation'
|
|
import { GetSharedVaultUsers } from '../../Domain/UseCase/SharedVaults/GetSharedVaultUsers/GetSharedVaultUsers'
|
|
import { RemoveUserFromSharedVault } from '../../Domain/UseCase/SharedVaults/RemoveUserFromSharedVault/RemoveUserFromSharedVault'
|
|
import { DesignateSurvivor } from '../../Domain/UseCase/SharedVaults/DesignateSurvivor/DesignateSurvivor'
|
|
|
|
@controller('/shared-vaults/:sharedVaultUuid/users', TYPES.Sync_AuthMiddleware)
|
|
export class AnnotatedSharedVaultUsersController extends BaseSharedVaultUsersController {
|
|
constructor(
|
|
@inject(TYPES.Sync_GetSharedVaultUsers) override getSharedVaultUsersUseCase: GetSharedVaultUsers,
|
|
@inject(TYPES.Sync_RemoveSharedVaultUser) override removeUserFromSharedVaultUseCase: RemoveUserFromSharedVault,
|
|
@inject(TYPES.Sync_DesignateSurvivor) override designateSurvivorUseCase: DesignateSurvivor,
|
|
@inject(TYPES.Sync_SharedVaultUserHttpMapper)
|
|
override sharedVaultUserHttpMapper: MapperInterface<SharedVaultUser, SharedVaultUserHttpRepresentation>,
|
|
) {
|
|
super(
|
|
getSharedVaultUsersUseCase,
|
|
removeUserFromSharedVaultUseCase,
|
|
designateSurvivorUseCase,
|
|
sharedVaultUserHttpMapper,
|
|
)
|
|
}
|
|
|
|
@httpGet('/')
|
|
override async getSharedVaultUsers(request: Request, response: Response): Promise<results.JsonResult> {
|
|
return super.getSharedVaultUsers(request, response)
|
|
}
|
|
|
|
@httpDelete('/:userUuid')
|
|
override async removeUserFromSharedVault(request: Request, response: Response): Promise<results.JsonResult> {
|
|
return super.removeUserFromSharedVault(request, response)
|
|
}
|
|
|
|
@httpPost('/:userUuid/designate-survivor')
|
|
override async designateSurvivor(request: Request, response: Response): Promise<results.JsonResult> {
|
|
return super.designateSurvivor(request, response)
|
|
}
|
|
}
|