deno-fresh-saurpc-lyrics/rpc.ts

28 lines
679 B
TypeScript
Raw Normal View History

2024-03-10 16:06:38 -05:00
import { hash } from 'bcrypt'
// import { User } from './models.ts'
import { TAuthUser, toUser, TUser } from '@lyrics/models.ts'
import { ulid } from '$std/ulid/mod.ts'
import { db } from '@lyrics/db.ts'
export const rpcs = {
'ping': (): 'pong' => {
console.log('received ping')
return 'pong'
},
'getVersion': () => '0.1.0',
async registerUser(
username: string,
password: string,
): Promise<TUser> {
const user: TAuthUser = {
id: ulid(),
createdAt: new Date(),
username: username,
passwordDigest: await hash(password),
}
const result = await db.user.save(user)
if (!result.ok) throw new Error('failed to save user')
return toUser(user)
},
}