import { orm } from '../orm/orm'; import { UnwrappedRequest } from '../utilities/guard'; import { CreatedResponse, ErrorResponse, OkResponse } from '../utilities/responseHelper'; import { CreateUserRequest, UpdateUserRequest } from '../utilities/requestModels'; import { PlayerId, UserId } from '../utilities/secureIds'; async function create(request: UnwrappedRequest): Promise { try { return new CreatedResponse( await orm.users.create({ ...request.body, playerId: PlayerId.fromHash(request.body.playerId), }), ); } catch (error: any) { return new ErrorResponse(error as Error); } } async function get(request: UnwrappedRequest): Promise { try { return new OkResponse(await orm.users.get(UserId.fromHash(request.params.id), request.claims)); } catch (error: any) { return new ErrorResponse(error as Error); } } async function update(request: UnwrappedRequest): Promise { try { return new OkResponse(await orm.users.update(UserId.fromHash(request.params.id), request.body, request.claims)); } catch (error: any) { return new ErrorResponse(error as Error); } } async function drop(request: UnwrappedRequest): Promise { try { return new OkResponse(await orm.users.drop(UserId.fromHash(request.params.id), request.claims)); } catch (error: any) { return new ErrorResponse(error as Error); } } export default { create, get, update, drop, };