pocketbase-tools
Version:
A TypeScript toolkit for PocketBase, featuring a standard service/action/types layered structure. It provides interfaces and implementations for common business logic such as users, products, company profiles, and file utilities, making it suitable for se
42 lines (41 loc) • 1.24 kB
TypeScript
import { IBaseService } from ".";
export interface IUserService extends IBaseService {
authenticate(email: string, password: string): Promise<any>;
requestPasswordReset(email: string): Promise<void>;
confirmPasswordReset(token: string, password: string, passwordConfirm: string): Promise<void>;
refreshToken(): Promise<any>;
getProfile(): Promise<any>;
}
export interface User {
collectionId?: string;
collectionName?: string;
id?: string;
email: string;
name?: string;
emailVisibility?: boolean;
avatar?: string;
verified?: boolean;
created?: string;
updated?: string;
}
export type UserCreate = User & {
password: string;
passwordConfirm: string;
};
export type UserUpdate = Partial<User> & {
oldPassword?: string;
password?: string;
passwordConfirm?: string;
};
export interface UserAction {
addUser(user: Partial<UserCreate>): Promise<User | null>;
updateUser(id: string, updatedFields: Partial<UserUpdate>): Promise<User | null>;
deleteUser(id: string): Promise<User | null>;
}
export interface UserService {
getAllUsers(options?: {
filter?: string;
sort?: string;
expand?: string[];
}): Promise<User[] | null>;
}