web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

commit cf4732f1d168705f9a50b44fa03fbdc23f6fb8e3
parent c2dce6cc630ca84060d1ab750c52bc7f6da8f5e9
Author: triesap <137732411+triesap@users.noreply.github.com>
Date:   Mon, 28 Apr 2025 03:58:10 +0000

client: edit iclientdatabase add `farm` methods

Diffstat:
Mclient/.gitignore | 6++++--
Mclient/src/database/tauri/lib.ts | 104+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
Mclient/src/database/tauri/types.ts | 7++++++-
Mclient/tsconfig.json | 5+++--
4 files changed, 110 insertions(+), 12 deletions(-)

diff --git a/client/.gitignore b/client/.gitignore @@ -28,8 +28,9 @@ yarn-error.log* .turbo .tmp* -.dev* .vscode notes*.txt +notes*.md justfile -git-diff.txt +dist +git-diff.txt +\ No newline at end of file diff --git a/client/src/database/tauri/lib.ts b/client/src/database/tauri/lib.ts @@ -1,5 +1,5 @@ -import { location_gcs_parse, location_gcs_parse_list, location_gcs_parse_select_query, location_gcs_parse_select_query_list, location_gcs_parse_update_query, location_gcs_validate_form_fields, location_gcs_validate_update_form_fields, log_error_parse, log_error_parse_list, log_error_parse_select_query, log_error_parse_select_query_list, log_error_parse_update_query, log_error_validate_form_fields, log_error_validate_update_form_fields, media_image_parse, media_image_parse_list, media_image_parse_select_query, media_image_parse_select_query_list, media_image_parse_update_query, media_image_validate_form_fields, media_image_validate_update_form_fields, nostr_profile_parse, nostr_profile_parse_list, nostr_profile_parse_select_query, nostr_profile_parse_select_query_list, nostr_profile_parse_update_query, nostr_profile_validate_form_fields, nostr_profile_validate_update_form_fields, nostr_relay_parse, nostr_relay_parse_list, nostr_relay_parse_select_query, nostr_relay_parse_select_query_list, nostr_relay_parse_update_query, nostr_relay_validate_form_fields, nostr_relay_validate_update_form_fields, trade_product_parse, trade_product_parse_list, trade_product_parse_select_query, trade_product_parse_select_query_list, trade_product_parse_update_query, trade_product_validate_form_fields, trade_product_validate_update_form_fields, type ILocationGcsCreate, type ILocationGcsCreateHandler, type ILocationGcsCreateResolve, type ILocationGcsDelete, type ILocationGcsDeleteHandler, type ILocationGcsDeleteResolve, type ILocationGcsRead, type ILocationGcsReadHandler, type ILocationGcsReadList, type ILocationGcsReadListHandler, type ILocationGcsReadListResolve, type ILocationGcsReadResolve, type ILocationGcsUpdate, type ILocationGcsUpdateHandler, type ILocationGcsUpdateResolve, type ILogErrorCreate, type ILogErrorCreateHandler, type ILogErrorCreateResolve, type ILogErrorDelete, type ILogErrorDeleteHandler, type ILogErrorDeleteResolve, type ILogErrorRead, type ILogErrorReadHandler, type ILogErrorReadList, type ILogErrorReadListHandler, type ILogErrorReadListResolve, type ILogErrorReadResolve, type ILogErrorUpdate, type ILogErrorUpdateHandler, type ILogErrorUpdateResolve, type IMediaImageCreate, type IMediaImageCreateHandler, type IMediaImageCreateResolve, type IMediaImageDelete, type IMediaImageDeleteHandler, type IMediaImageDeleteResolve, type IMediaImageRead, type IMediaImageReadHandler, type IMediaImageReadList, type IMediaImageReadListHandler, type IMediaImageReadListResolve, type IMediaImageReadResolve, type IMediaImageUpdate, type IMediaImageUpdateHandler, type IMediaImageUpdateResolve, type INostrProfileCreate, type INostrProfileCreateHandler, type INostrProfileCreateResolve, type INostrProfileDelete, type INostrProfileDeleteHandler, type INostrProfileDeleteResolve, type INostrProfileRead, type INostrProfileReadHandler, type INostrProfileReadList, type INostrProfileReadListHandler, type INostrProfileReadListResolve, type INostrProfileReadResolve, type INostrProfileRelayRelation, type INostrProfileRelayResolve, type INostrProfileUpdate, type INostrProfileUpdateHandler, type INostrProfileUpdateResolve, type INostrRelayCreate, type INostrRelayCreateHandler, type INostrRelayCreateResolve, type INostrRelayDelete, type INostrRelayDeleteHandler, type INostrRelayDeleteResolve, type INostrRelayRead, type INostrRelayReadHandler, type INostrRelayReadList, type INostrRelayReadListHandler, type INostrRelayReadListResolve, type INostrRelayReadResolve, type INostrRelayUpdate, type INostrRelayUpdateHandler, type INostrRelayUpdateResolve, type ITradeProductCreate, type ITradeProductCreateHandler, type ITradeProductCreateResolve, type ITradeProductDelete, type ITradeProductDeleteHandler, type ITradeProductDeleteResolve, type ITradeProductLocationRelation, type ITradeProductLocationResolve, type ITradeProductMediaRelation, type ITradeProductMediaResolve, type ITradeProductRead, type ITradeProductReadHandler, type ITradeProductReadList, type ITradeProductReadListHandler, type ITradeProductReadListResolve, type ITradeProductReadResolve, type ITradeProductUpdate, type ITradeProductUpdateHandler, type ITradeProductUpdateResolve } from "@radroots/models"; +import { farm_parse, farm_parse_list, farm_parse_select_query, farm_parse_select_query_list, farm_parse_update_query, farm_validate_form_fields, farm_validate_update_form_fields, location_gcs_parse, location_gcs_parse_list, location_gcs_parse_select_query, location_gcs_parse_select_query_list, location_gcs_parse_update_query, location_gcs_validate_form_fields, location_gcs_validate_update_form_fields, log_error_parse, log_error_parse_list, log_error_parse_select_query, log_error_parse_select_query_list, log_error_parse_update_query, log_error_validate_form_fields, log_error_validate_update_form_fields, media_image_parse, media_image_parse_list, media_image_parse_select_query, media_image_parse_select_query_list, media_image_parse_update_query, media_image_validate_form_fields, media_image_validate_update_form_fields, nostr_profile_parse, nostr_profile_parse_list, nostr_profile_parse_select_query, nostr_profile_parse_select_query_list, nostr_profile_parse_update_query, nostr_profile_validate_form_fields, nostr_profile_validate_update_form_fields, nostr_relay_parse, nostr_relay_parse_list, nostr_relay_parse_select_query, nostr_relay_parse_select_query_list, nostr_relay_parse_update_query, nostr_relay_validate_form_fields, nostr_relay_validate_update_form_fields, trade_product_parse, trade_product_parse_list, trade_product_parse_select_query, trade_product_parse_select_query_list, trade_product_parse_update_query, trade_product_validate_form_fields, trade_product_validate_update_form_fields, type IFarmCreate, type IFarmCreateHandler, type IFarmCreateResolve, type IFarmDelete, type IFarmDeleteHandler, type IFarmDeleteResolve, type IFarmLocationRelation, type IFarmLocationResolve, type IFarmRead, type IFarmReadHandler, type IFarmReadList, type IFarmReadListHandler, type IFarmReadListResolve, type IFarmReadResolve, type IFarmUpdate, type IFarmUpdateHandler, type IFarmUpdateResolve, type ILocationGcsCreate, type ILocationGcsCreateHandler, type ILocationGcsCreateResolve, type ILocationGcsDelete, type ILocationGcsDeleteHandler, type ILocationGcsDeleteResolve, type ILocationGcsRead, type ILocationGcsReadHandler, type ILocationGcsReadList, type ILocationGcsReadListHandler, type ILocationGcsReadListResolve, type ILocationGcsReadResolve, type ILocationGcsUpdate, type ILocationGcsUpdateHandler, type ILocationGcsUpdateResolve, type ILogErrorCreate, type ILogErrorCreateHandler, type ILogErrorCreateResolve, type ILogErrorDelete, type ILogErrorDeleteHandler, type ILogErrorDeleteResolve, type ILogErrorRead, type ILogErrorReadHandler, type ILogErrorReadList, type ILogErrorReadListHandler, type ILogErrorReadListResolve, type ILogErrorReadResolve, type ILogErrorUpdate, type ILogErrorUpdateHandler, type ILogErrorUpdateResolve, type IMediaImageCreate, type IMediaImageCreateHandler, type IMediaImageCreateResolve, type IMediaImageDelete, type IMediaImageDeleteHandler, type IMediaImageDeleteResolve, type IMediaImageRead, type IMediaImageReadHandler, type IMediaImageReadList, type IMediaImageReadListHandler, type IMediaImageReadListResolve, type IMediaImageReadResolve, type IMediaImageUpdate, type IMediaImageUpdateHandler, type IMediaImageUpdateResolve, type INostrProfileCreate, type INostrProfileCreateHandler, type INostrProfileCreateResolve, type INostrProfileDelete, type INostrProfileDeleteHandler, type INostrProfileDeleteResolve, type INostrProfileRead, type INostrProfileReadHandler, type INostrProfileReadList, type INostrProfileReadListHandler, type INostrProfileReadListResolve, type INostrProfileReadResolve, type INostrProfileRelayRelation, type INostrProfileRelayResolve, type INostrProfileUpdate, type INostrProfileUpdateHandler, type INostrProfileUpdateResolve, type INostrRelayCreate, type INostrRelayCreateHandler, type INostrRelayCreateResolve, type INostrRelayDelete, type INostrRelayDeleteHandler, type INostrRelayDeleteResolve, type INostrRelayRead, type INostrRelayReadHandler, type INostrRelayReadList, type INostrRelayReadListHandler, type INostrRelayReadListResolve, type INostrRelayReadResolve, type INostrRelayUpdate, type INostrRelayUpdateHandler, type INostrRelayUpdateResolve, type ITradeProductCreate, type ITradeProductCreateHandler, type ITradeProductCreateResolve, type ITradeProductDelete, type ITradeProductDeleteHandler, type ITradeProductDeleteResolve, type ITradeProductLocationRelation, type ITradeProductLocationResolve, type ITradeProductMediaRelation, type ITradeProductMediaResolve, type ITradeProductRead, type ITradeProductReadHandler, type ITradeProductReadList, type ITradeProductReadListHandler, type ITradeProductReadListResolve, type ITradeProductReadResolve, type ITradeProductUpdate, type ITradeProductUpdateHandler, type ITradeProductUpdateResolve } from "@radroots/models"; import { err_msg, is_err_response, is_pass_response, is_result_response, is_results_response, type ErrorMessage } from "@radroots/util"; import { invoke } from "@tauri-apps/api/core"; import type { IClientTauriDatabase, IClientTauriDatabaseMessage } from "./types"; @@ -436,10 +436,78 @@ export class TauriClientDatabase implements IClientTauriDatabase { }; } + public async farm_create(opts: IFarmCreate): Promise<IFarmCreateResolve<IClientTauriDatabaseMessage>> { + try { + const args = farm_validate_form_fields(opts); + if (Array.isArray(args)) return { err_s: args }; + const response = await invoke<any>("model_farm_create", { args } satisfies IFarmCreateHandler); + if (is_err_response(response)) return err_msg(response.err); + else if (is_result_response(response)) return { id: response.result }; + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_create", opts, e); + }; + } + + public async farm_read(opts: IFarmRead): Promise<IFarmReadResolve<IClientTauriDatabaseMessage>> { + try { + const args = farm_parse_select_query(opts); + const response = await invoke<any>("model_farm_read", { args } satisfies IFarmReadHandler); + if (is_err_response(response)) return err_msg(response.err); + else if (is_results_response(response)) { + const result = farm_parse(response.results[0]); + if (result) return { result }; + } + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_read", opts, e); + }; + } + + public async farm_read_list(opts?: IFarmReadList): Promise<IFarmReadListResolve<IClientTauriDatabaseMessage>> { + try { + const args = farm_parse_select_query_list(opts); + const response = await invoke<any>("model_farm_read_list", { args } satisfies IFarmReadListHandler); + if (is_err_response(response)) return err_msg(response.err); + else if (is_results_response(response)) { + const results = farm_parse_list(response.results); + if (results.length) return { results }; + } + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_read_list", opts, e); + }; + } + + public async farm_update(opts: IFarmUpdate): Promise<IFarmUpdateResolve<IClientTauriDatabaseMessage>> { + try { + const fields = farm_validate_update_form_fields(opts.fields); + if (Array.isArray(fields)) return { err_s: fields }; + const args = farm_parse_update_query(opts.filter, fields); + const response = await invoke<any>("model_farm_update", { args } satisfies IFarmUpdateHandler); + if (is_err_response(response)) return err_msg(response.err); + else if (is_pass_response(response)) return { pass: true }; + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_update", opts, e); + }; + } + + public async farm_delete(args: IFarmDelete): Promise<IFarmDeleteResolve<IClientTauriDatabaseMessage>> { + try { + const response = await invoke<any>("model_farm_delete", { args } satisfies IFarmDeleteHandler); + if (is_err_response(response)) return err_msg(response.err); + else if (is_pass_response(response)) return { pass: true }; + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_delete", args, e); + }; + } + public async nostr_profile_relay_set(args: INostrProfileRelayRelation): Promise<INostrProfileRelayResolve<IClientTauriDatabaseMessage>> { try { const response = await invoke<any>("model_nostr_profile_relay_set", { args }); - if (response === true) return { pass: true }; + if (response?.pass === true) return { pass: true }; else if (typeof response === "string") return err_msg(response); return err_msg("*-result"); } catch (e) { @@ -450,7 +518,7 @@ export class TauriClientDatabase implements IClientTauriDatabase { public async nostr_profile_relay_unset(args: INostrProfileRelayRelation): Promise<INostrProfileRelayResolve<IClientTauriDatabaseMessage>> { try { const response = await invoke<any>("model_nostr_profile_relay_unset", { args }); - if (response === true) return { pass: true }; + if (response?.pass === true) return { pass: true }; else if (typeof response === "string") return err_msg(response); return err_msg("*-result"); } catch (e) { @@ -458,10 +526,32 @@ export class TauriClientDatabase implements IClientTauriDatabase { }; } + public async farm_location_set(args: IFarmLocationRelation): Promise<IFarmLocationResolve<IClientTauriDatabaseMessage>> { + try { + const response = await invoke<any>("model_farm_location_set", { args }); + if (response?.pass === true) return { pass: true }; + else if (typeof response === "string") return err_msg(response); + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_location_set", args, e); + }; + } + + public async farm_location_unset(args: IFarmLocationRelation): Promise<IFarmLocationResolve<IClientTauriDatabaseMessage>> { + try { + const response = await invoke<any>("model_farm_location_unset", { args }); + if (response?.pass === true) return { pass: true }; + else if (typeof response === "string") return err_msg(response); + return err_msg("*-result"); + } catch (e) { + return this.handle_errors("model_farm_location_unset", args, e); + }; + } + public async trade_product_location_set(args: ITradeProductLocationRelation): Promise<ITradeProductLocationResolve<IClientTauriDatabaseMessage>> { try { const response = await invoke<any>("model_trade_product_location_set", { args }); - if (response === true) return { pass: true }; + if (response?.pass === true) return { pass: true }; else if (typeof response === "string") return err_msg(response); return err_msg("*-result"); } catch (e) { @@ -472,7 +562,7 @@ export class TauriClientDatabase implements IClientTauriDatabase { public async trade_product_location_unset(args: ITradeProductLocationRelation): Promise<ITradeProductLocationResolve<IClientTauriDatabaseMessage>> { try { const response = await invoke<any>("model_trade_product_location_unset", { args }); - if (response === true) return { pass: true }; + if (response?.pass === true) return { pass: true }; else if (typeof response === "string") return err_msg(response); return err_msg("*-result"); } catch (e) { @@ -483,7 +573,7 @@ export class TauriClientDatabase implements IClientTauriDatabase { public async trade_product_media_set(args: ITradeProductMediaRelation): Promise<ITradeProductMediaResolve<IClientTauriDatabaseMessage>> { try { const response = await invoke<any>("model_trade_product_media_set", { args }); - if (response === true) return { pass: true }; + if (response?.pass === true) return { pass: true }; else if (typeof response === "string") return err_msg(response); return err_msg("*-result"); } catch (e) { @@ -494,7 +584,7 @@ export class TauriClientDatabase implements IClientTauriDatabase { public async trade_product_media_unset(args: ITradeProductMediaRelation): Promise<ITradeProductMediaResolve<IClientTauriDatabaseMessage>> { try { const response = await invoke<any>("model_trade_product_media_unset", { args }); - if (response === true) return { pass: true }; + if (response?.pass === true) return { pass: true }; else if (typeof response === "string") return err_msg(response); return err_msg("*-result"); } catch (e) { diff --git a/client/src/database/tauri/types.ts b/client/src/database/tauri/types.ts @@ -1,4 +1,4 @@ -import { type ILocationGcsCreate, type ILocationGcsCreateResolve, type ILocationGcsDelete, type ILocationGcsDeleteResolve, type ILocationGcsRead, type ILocationGcsReadList, type ILocationGcsReadListResolve, type ILocationGcsReadResolve, type ILocationGcsUpdate, type ILocationGcsUpdateResolve, type ILogErrorCreate, type ILogErrorCreateResolve, type ILogErrorDelete, type ILogErrorDeleteResolve, type ILogErrorRead, type ILogErrorReadList, type ILogErrorReadListResolve, type ILogErrorReadResolve, type ILogErrorUpdate, type ILogErrorUpdateResolve, type IMediaImageCreate, type IMediaImageCreateResolve, type IMediaImageDelete, type IMediaImageDeleteResolve, type IMediaImageRead, type IMediaImageReadList, type IMediaImageReadListResolve, type IMediaImageReadResolve, type IMediaImageUpdate, type IMediaImageUpdateResolve, type INostrProfileCreate, type INostrProfileCreateResolve, type INostrProfileDelete, type INostrProfileDeleteResolve, type INostrProfileRead, type INostrProfileReadList, type INostrProfileReadListResolve, type INostrProfileReadResolve, type INostrProfileUpdate, type INostrProfileUpdateResolve, type INostrRelayCreate, type INostrRelayCreateResolve, type INostrRelayDelete, type INostrRelayDeleteResolve, type INostrRelayRead, type INostrRelayReadList, type INostrRelayReadListResolve, type INostrRelayReadResolve, type INostrRelayUpdate, type INostrRelayUpdateResolve, type ITradeProductCreate, type ITradeProductCreateResolve, type ITradeProductDelete, type ITradeProductDeleteResolve, type ITradeProductRead, type ITradeProductReadList, type ITradeProductReadListResolve, type ITradeProductReadResolve, type ITradeProductUpdate, type ITradeProductUpdateResolve } from "@radroots/models"; +import { type IFarmCreate, type IFarmCreateResolve, type IFarmDelete, type IFarmDeleteResolve, type IFarmRead, type IFarmReadList, type IFarmReadListResolve, type IFarmReadResolve, type IFarmUpdate, type IFarmUpdateResolve, type ILocationGcsCreate, type ILocationGcsCreateResolve, type ILocationGcsDelete, type ILocationGcsDeleteResolve, type ILocationGcsRead, type ILocationGcsReadList, type ILocationGcsReadListResolve, type ILocationGcsReadResolve, type ILocationGcsUpdate, type ILocationGcsUpdateResolve, type ILogErrorCreate, type ILogErrorCreateResolve, type ILogErrorDelete, type ILogErrorDeleteResolve, type ILogErrorRead, type ILogErrorReadList, type ILogErrorReadListResolve, type ILogErrorReadResolve, type ILogErrorUpdate, type ILogErrorUpdateResolve, type IMediaImageCreate, type IMediaImageCreateResolve, type IMediaImageDelete, type IMediaImageDeleteResolve, type IMediaImageRead, type IMediaImageReadList, type IMediaImageReadListResolve, type IMediaImageReadResolve, type IMediaImageUpdate, type IMediaImageUpdateResolve, type INostrProfileCreate, type INostrProfileCreateResolve, type INostrProfileDelete, type INostrProfileDeleteResolve, type INostrProfileRead, type INostrProfileReadList, type INostrProfileReadListResolve, type INostrProfileReadResolve, type INostrProfileUpdate, type INostrProfileUpdateResolve, type INostrRelayCreate, type INostrRelayCreateResolve, type INostrRelayDelete, type INostrRelayDeleteResolve, type INostrRelayRead, type INostrRelayReadList, type INostrRelayReadListResolve, type INostrRelayReadResolve, type INostrRelayUpdate, type INostrRelayUpdateResolve, type ITradeProductCreate, type ITradeProductCreateResolve, type ITradeProductDelete, type ITradeProductDeleteResolve, type ITradeProductRead, type ITradeProductReadList, type ITradeProductReadListResolve, type ITradeProductReadResolve, type ITradeProductUpdate, type ITradeProductUpdateResolve } from "@radroots/models"; export type IClientTauriDatabaseMessage = | string @@ -36,4 +36,9 @@ export type IClientTauriDatabase = { log_error_read_list(opts: ILogErrorReadList): Promise<ILogErrorReadListResolve<IClientTauriDatabaseMessage>>; log_error_delete(opts: ILogErrorDelete): Promise<ILogErrorDeleteResolve<IClientTauriDatabaseMessage>>; log_error_update(opts: ILogErrorUpdate): Promise<ILogErrorUpdateResolve<IClientTauriDatabaseMessage>>; + farm_create(opts: IFarmCreate): Promise<IFarmCreateResolve<IClientTauriDatabaseMessage>>; + farm_read(opts: IFarmRead): Promise<IFarmReadResolve<IClientTauriDatabaseMessage>>; + farm_read_list(opts: IFarmReadList): Promise<IFarmReadListResolve<IClientTauriDatabaseMessage>>; + farm_delete(opts: IFarmDelete): Promise<IFarmDeleteResolve<IClientTauriDatabaseMessage>>; + farm_update(opts: IFarmUpdate): Promise<IFarmUpdateResolve<IClientTauriDatabaseMessage>>; }; \ No newline at end of file diff --git a/client/tsconfig.json b/client/tsconfig.json @@ -4,12 +4,13 @@ "target": "es2021", "lib": [ "es2021", - "DOM" + "dom" ], "module": "CommonJS", "outDir": "./dist", "rootDir": "./src", - "noEmit": true, + "declaration": true, + "emitDeclarationOnly": true, "esModuleInterop": true, "skipLibCheck": true },