import { CreateUserBody, LoginUserBody, UserInfo, UpdateUserBody } from '@core'; import { Services } from '../app'; import { UserWithPassword } from '../entities/user'; export function LoginUser( services: Services, ): (tracker: string, raw: LoginUserBody) => Promise { const { userModel } = services; return async (tracker, raw) => { const user = await userModel.login(tracker, raw); return user.Info(); }; } export function CreateUser( services: Services, ): (tracker: string, raw: CreateUserBody) => Promise { const { userModel } = services; return async (tracker, raw) => { const user = await userModel.create(tracker, new UserWithPassword(raw)); return user.Info(); }; } export function ReadUser( services: Services, ): (tracker: string, uuid: string) => Promise { const { userModel } = services; return async (tracker, uuid) => { const user = await userModel.read(tracker, uuid); return user.Info(); }; } export function UpdateUser( services: Services, ): (tracker: string, uuid: string, raw: UpdateUserBody) => Promise { const { userModel } = services; return async (tracker, uuid, raw) => { const user = await userModel.update(tracker, uuid, raw); return user.Info(); }; }