mirror of
https://github.com/standardnotes/server
synced 2026-10-20 12:03:39 -04:00
* wip: fix variable name * wip: remove redundant middleware in auth * fix: auth middleware refactor * fix(auth): fetching user for key params * fix(auth): specs * fix(auth): registering session controller endpoints
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import { Request, Response } from 'express'
|
|
import { inject } from 'inversify'
|
|
import { BaseHttpController, controller, httpDelete, httpGet, httpPost } from 'inversify-express-utils'
|
|
import { TYPES } from '../../Bootstrap/Types'
|
|
import { ServiceProxyInterface } from '../../Service/Http/ServiceProxyInterface'
|
|
import { EndpointResolverInterface } from '../../Service/Resolver/EndpointResolverInterface'
|
|
|
|
@controller('/v1/sessions')
|
|
export class SessionsController extends BaseHttpController {
|
|
constructor(
|
|
@inject(TYPES.ServiceProxy) private httpService: ServiceProxyInterface,
|
|
@inject(TYPES.EndpointResolver) private endpointResolver: EndpointResolverInterface,
|
|
) {
|
|
super()
|
|
}
|
|
|
|
@httpGet('/', TYPES.RequiredCrossServiceTokenMiddleware)
|
|
async getSessions(request: Request, response: Response): Promise<void> {
|
|
await this.httpService.callAuthServer(
|
|
request,
|
|
response,
|
|
this.endpointResolver.resolveEndpointOrMethodIdentifier('GET', 'sessions'),
|
|
)
|
|
}
|
|
|
|
@httpDelete('/:uuid', TYPES.RequiredCrossServiceTokenMiddleware)
|
|
async deleteSession(request: Request, response: Response): Promise<void> {
|
|
await this.httpService.callAuthServer(
|
|
request,
|
|
response,
|
|
this.endpointResolver.resolveEndpointOrMethodIdentifier('DELETE', 'session'),
|
|
{
|
|
uuid: request.params.uuid,
|
|
},
|
|
)
|
|
}
|
|
|
|
@httpDelete('/', TYPES.RequiredCrossServiceTokenMiddleware)
|
|
async deleteSessions(request: Request, response: Response): Promise<void> {
|
|
await this.httpService.callAuthServer(
|
|
request,
|
|
response,
|
|
this.endpointResolver.resolveEndpointOrMethodIdentifier('DELETE', 'session/all'),
|
|
)
|
|
}
|
|
|
|
@httpPost('/refresh')
|
|
async refreshSession(request: Request, response: Response): Promise<void> {
|
|
await this.httpService.callAuthServer(
|
|
request,
|
|
response,
|
|
this.endpointResolver.resolveEndpointOrMethodIdentifier('POST', 'session/refresh'),
|
|
request.body,
|
|
)
|
|
}
|
|
}
|