refactor(ui): refactor accesses state using zustand store

This commit is contained in:
Fu Diwei
2024-12-11 19:55:50 +08:00
parent b744363736
commit bb3009a124
48 changed files with 359 additions and 404 deletions

View File

@@ -1,24 +1,26 @@
import dayjs from "dayjs";
import { type Access } from "@/domain/access";
import { type AccessModel } from "@/domain/access";
import { getPocketBase } from "./pocketbase";
const COLLECTION_NAME = "access";
export const list = async () => {
return await getPocketBase().collection("access").getFullList<Access>({
return await getPocketBase().collection(COLLECTION_NAME).getFullList<AccessModel>({
sort: "-created",
filter: "deleted = null",
filter: "deleted=null",
});
};
export const save = async (record: Access) => {
export const save = async (record: AccessModel) => {
if (record.id) {
return await getPocketBase().collection("access").update(record.id, record);
return await getPocketBase().collection(COLLECTION_NAME).update<AccessModel>(record.id, record);
}
return await getPocketBase().collection("access").create(record);
return await getPocketBase().collection(COLLECTION_NAME).create<AccessModel>(record);
};
export const remove = async (record: Access) => {
record.deleted = dayjs.utc().format("YYYY-MM-DD HH:mm:ss");
return await getPocketBase().collection("access").update(record.id, record);
export const remove = async (record: AccessModel) => {
record = { ...record, deleted: dayjs.utc().format("YYYY-MM-DD HH:mm:ss") };
await getPocketBase().collection(COLLECTION_NAME).update<AccessModel>(record.id, record);
};

View File

@@ -1,9 +1,11 @@
import dayjs from "dayjs";
import { type RecordListOptions } from "pocketbase";
import { type Certificate } from "@/domain/certificate";
import { type CertificateModel } from "@/domain/certificate";
import { getPocketBase } from "./pocketbase";
const COLLECTION_NAME = "certificate";
export type CertificateListReq = {
page?: number;
perPage?: number;
@@ -31,5 +33,5 @@ export const list = async (req: CertificateListReq) => {
});
}
return pb.collection("certificate").getList<Certificate>(page, perPage, options);
return pb.collection(COLLECTION_NAME).getList<CertificateModel>(page, perPage, options);
};

View File

@@ -1,22 +1,22 @@
import { Settings } from "@/domain/settings";
import { SettingsModel } from "@/domain/settings";
import { getPocketBase } from "./pocketbase";
export const get = async <T>(name: string) => {
try {
const resp = await getPocketBase().collection("settings").getFirstListItem<Settings<T>>(`name='${name}'`);
const resp = await getPocketBase().collection("settings").getFirstListItem<SettingsModel<T>>(`name='${name}'`);
return resp;
} catch {
return {
name: name,
content: {} as T,
} as Settings<T>;
} as SettingsModel<T>;
}
};
export const save = async <T>(record: Settings<T>) => {
export const save = async <T>(record: SettingsModel<T>) => {
if (record.id) {
return await getPocketBase().collection("settings").update<Settings<T>>(record.id, record);
return await getPocketBase().collection("settings").update<SettingsModel<T>>(record.id, record);
}
return await getPocketBase().collection("settings").create<Settings<T>>(record);
return await getPocketBase().collection("settings").create<SettingsModel<T>>(record);
};

View File

@@ -1,8 +1,10 @@
import { type RecordListOptions } from "pocketbase";
import { type Workflow, type WorkflowNode, type WorkflowRunLog } from "@/domain/workflow";
import { type WorkflowModel, type WorkflowNode, type WorkflowRunLog } from "@/domain/workflow";
import { getPocketBase } from "./pocketbase";
const COLLECTION_NAME = "workflow";
export type WorkflowListReq = {
page?: number;
perPage?: number;
@@ -20,25 +22,25 @@ export const list = async (req: WorkflowListReq) => {
options.filter = pb.filter("enabled={:enabled}", { enabled: req.enabled });
}
return await pb.collection("workflow").getList<Workflow>(page, perPage, options);
return await pb.collection(COLLECTION_NAME).getList<WorkflowModel>(page, perPage, options);
};
export const get = async (id: string) => {
return await getPocketBase().collection("workflow").getOne<Workflow>(id);
return await getPocketBase().collection(COLLECTION_NAME).getOne<WorkflowModel>(id);
};
export const save = async (record: Record<string, string | boolean | WorkflowNode>) => {
if (record.id) {
return await getPocketBase()
.collection("workflow")
.update<Workflow>(record.id as string, record);
.collection(COLLECTION_NAME)
.update<WorkflowModel>(record.id as string, record);
}
return await getPocketBase().collection("workflow").create<Workflow>(record);
return await getPocketBase().collection(COLLECTION_NAME).create<WorkflowModel>(record);
};
export const remove = async (record: Workflow) => {
return await getPocketBase().collection("workflow").delete(record.id);
export const remove = async (record: WorkflowModel) => {
await getPocketBase().collection(COLLECTION_NAME).delete(record.id);
};
type WorkflowLogsReq = {