import { RecordModel } from "pocketbase" import { managePb404 } from "../../utils/pbTools" import pbClient from "../pbClient" export interface UserRecordModel extends RecordModel { user_id: number username: string name: string avatar_url: string web_url: string } const getOne = (id: string) => managePb404( async () => await pbClient.collection("user").getOne(id) ) const getOneByUserId = (user_id: number) => { return managePb404( async () => await pbClient .collection("user") .getFirstListItem(`user_id="${user_id}"`, { sort: "-created", }) ) } const create = async (data: Partial) => await pbClient.collection("user").create(data) const upsert = async (data: Partial) => { if (!data.user_id) return null const userInfo = await getOneByUserId(data.user_id) if (userInfo) return userInfo return await create(data) } const user = { create, upsert, getOne, getOneByUserId, } export default user