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) ) as Promise; const getOneByUserId = (user_id: number) => { return managePb404( async () => await pbClient .collection("user") .getFirstListItem(`user_id="${user_id}"`, { sort: "-created", }) ) as Promise; }; 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;