UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

251 lines 13.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSettingsResource = createSettingsResource; exports.createSettingsDataResource = createSettingsDataResource; const zod_1 = require("zod"); const schemas_1 = require("../../../core/schemas"); const schemas_2 = require("../schemas"); // Create response schemas using BaseResponseSchema directly const UnknownResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.unknown()); const UnknownArrayResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.array(zod_1.z.unknown())); /** * Creates the settings resource methods * OpenAPI Path: /settings → settings.* * @description Comprehensive settings configuration management for site content and behavior */ function createSettingsResource(executeRequest) { return { /** * List all configuration settings with optional filtering and pagination * @description Retrieves all site configuration settings with support for filtering and pagination * @fullPath api.agrSite.settings.list * @service agr-site * @domain site-content-management * @dataMethod settingsData.list - returns only the settings array without metadata * @discoverable true * @searchTerms ["settings", "configuration", "site config", "preferences", "site settings", "content settings"] * @relatedEndpoints ["api.agrSite.settings.get", "api.agrSite.settings.create", "api.agrSite.settings.update", "api.agrSite.settings.delete"] * @commonPatterns ["Get all settings", "List site configuration", "Retrieve preferences", "Configuration management"] * @workflow ["settings-management", "site-configuration", "site-setup"] * @prerequisites ["Valid authentication token", "Settings read permissions"] * @nextSteps ["api.agrSite.settings.get for details", "api.agrSite.settings.update for modifications"] * @businessRules ["Returns only settings accessible to current user", "Respects site-level permissions", "Pagination recommended for large config sets"] * @functionalArea "site-content-and-ai-processing" * @caching "Cache for 10 minutes, invalidate on settings changes" * @performance "Supports pagination, use filters for large configuration sets" * @param params Optional filtering and pagination parameters * @returns Promise<BaseResponse<unknown[]>> Complete response with settings array and metadata * @example * ```typescript * // Get all settings * const response = await client.settings.list(); * console.log(response.data); // Settings array * * // Get just the data * const settings = await client.settingsData.list(); * * // Filter settings * const filtered = await client.settings.list({ category: 'agricultural' }); * ``` */ list: async (params) => { return executeRequest({ method: 'GET', path: '/settings', paramsSchema: schemas_2.SettingListParamsSchema, responseSchema: UnknownArrayResponseSchema, }, params); }, /** * Get configuration setting details by ID * @description Retrieves detailed information for a specific configuration setting * @fullPath api.agrSite.settings.get * @service agr-site * @domain site-content-management * @dataMethod settingsData.get - returns only the setting data without metadata * @discoverable true * @searchTerms ["setting detail", "configuration detail", "get setting", "retrieve config", "setting info"] * @relatedEndpoints ["api.agrSite.settings.list", "api.agrSite.settings.update", "api.agrSite.settings.delete"] * @commonPatterns ["Get setting details", "Retrieve configuration", "View setting info"] * @workflow ["settings-management", "configuration-review"] * @prerequisites ["Valid authentication token", "Setting read permissions", "Valid setting ID"] * @nextSteps ["api.agrSite.settings.update to modify", "api.agrSite.settings.delete to remove"] * @businessRules ["Returns 404 if setting not found", "Respects setting-level permissions"] * @functionalArea "site-content-and-ai-processing" * @caching "Cache for 15 minutes, invalidate on setting updates" * @performance "Direct ID lookup, very fast response" * @param settingsUid Unique identifier for the setting * @returns Promise<BaseResponse<unknown>> Complete response with setting details * @example * ```typescript * const setting = await client.settings.get(123); * const settingData = await client.settingsData.get(123); * ``` */ get: async (settingsUid) => { return executeRequest({ method: 'GET', path: '/settings/{settingsUid}', responseSchema: UnknownResponseSchema, }, undefined, { settingsUid: String(settingsUid) }); }, /** * Create new configuration setting * @description Creates a new site configuration setting with specified parameters * @fullPath api.agrSite.settings.create * @service agr-site * @domain site-content-management * @dataMethod settingsData.create - returns only the created setting data without metadata * @discoverable true * @searchTerms ["create setting", "new configuration", "add setting", "setting creation", "config setup"] * @relatedEndpoints ["api.agrSite.settings.list", "api.agrSite.settings.get", "api.agrSite.settings.update"] * @commonPatterns ["Create new setting", "Add configuration", "Setup new preference"] * @workflow ["settings-management", "site-configuration", "site-setup"] * @prerequisites ["Valid authentication token", "Settings create permissions", "Valid setting data"] * @nextSteps ["api.agrSite.settings.get to verify", "api.agrSite.settings.update for modifications"] * @businessRules ["Setting names must be unique", "Validates setting format", "Creates audit trail"] * @functionalArea "site-content-and-ai-processing" * @performance "Synchronous creation with immediate availability" * @param params Setting creation parameters including name, value, and metadata * @returns Promise<BaseResponse<unknown>> Complete response with created setting details * @example * ```typescript * const newSetting = await client.settings.create({ * name: 'crop_rotation_interval', * value: '3', * category: 'agricultural', * description: 'Default crop rotation interval in years' * }); * ``` */ create: async (params) => { return executeRequest({ method: 'POST', path: '/settings', paramsSchema: schemas_2.SettingCreateParamsSchema, responseSchema: UnknownResponseSchema, }, params); }, /** * Update existing configuration setting * @description Updates an existing site configuration setting with new values * @fullPath api.agrSite.settings.update * @service agr-site * @domain site-content-management * @dataMethod settingsData.update - returns only the updated setting data without metadata * @discoverable true * @searchTerms ["update setting", "modify configuration", "change setting", "edit config", "setting update"] * @relatedEndpoints ["api.agrSite.settings.list", "api.agrSite.settings.get", "api.agrSite.settings.delete"] * @commonPatterns ["Update setting value", "Modify configuration", "Change preferences"] * @workflow ["settings-management", "configuration-maintenance"] * @prerequisites ["Valid authentication token", "Settings update permissions", "Existing setting ID"] * @nextSteps ["api.agrSite.settings.get to verify changes", "Cache invalidation may be required"] * @businessRules ["Validates new values", "Maintains setting history", "Updates audit trail"] * @functionalArea "site-content-and-ai-processing" * @performance "Synchronous update with immediate effect" * @param settingsUid Unique identifier for the setting to update * @param params Updated setting parameters * @returns Promise<BaseResponse<unknown>> Complete response with updated setting details * @example * ```typescript * const updated = await client.settings.update(123, { * value: '5', * description: 'Updated crop rotation interval' * }); * ``` */ update: async (settingsUid, params) => { return executeRequest({ method: 'PUT', path: '/settings/{settingsUid}', paramsSchema: schemas_2.SettingUpdateParamsSchema, responseSchema: UnknownResponseSchema, }, params, { settingsUid: String(settingsUid) }); }, /** * Delete configuration setting * @description Removes a configuration setting from the system * @fullPath api.agrSite.settings.delete * @service agr-site * @domain site-content-management * @dataMethod settingsData.delete - returns only the deletion result without metadata * @discoverable true * @searchTerms ["delete setting", "remove configuration", "delete config", "remove setting"] * @relatedEndpoints ["api.agrSite.settings.list", "api.agrSite.settings.get", "api.agrSite.settings.create"] * @commonPatterns ["Delete setting", "Remove configuration", "Clean up settings"] * @workflow ["settings-management", "configuration-cleanup"] * @prerequisites ["Valid authentication token", "Settings delete permissions", "Existing setting ID"] * @nextSteps ["Cache invalidation", "Verify setting removal with list operation"] * @businessRules ["Cannot delete system-critical settings", "Creates deletion audit log", "Irreversible operation"] * @functionalArea "site-content-and-ai-processing" * @performance "Immediate deletion with cascading cleanup" * @param settingsUid Unique identifier for the setting to delete * @returns Promise<BaseResponse<unknown>> Complete response confirming deletion * @example * ```typescript * const result = await client.settings.delete(123); * ``` */ delete: async (settingsUid) => { return executeRequest({ method: 'DELETE', path: '/settings/{settingsUid}', responseSchema: UnknownResponseSchema, }, undefined, { settingsUid: String(settingsUid) }); }, }; } /** * Creates the settingsData resource methods (data-only versions) */ function createSettingsDataResource(settings) { return { /** * Get settings data without response metadata * @param params Optional filtering and pagination parameters * @returns Promise<unknown[]> Settings array directly */ list: async (params) => { const response = await settings.list(params); return response.data; }, /** * Get setting data without response metadata * @param settingsUid Unique identifier for the setting * @returns Promise<unknown> Setting data directly */ get: async (settingsUid) => { const response = await settings.get(settingsUid); return response.data; }, /** * Create setting and return data without response metadata * @param params Setting creation parameters * @returns Promise<unknown> Created setting data directly */ create: async (params) => { const response = await settings.create(params); return response.data; }, /** * Update setting and return data without response metadata * @param settingsUid Unique identifier for the setting to update * @param params Updated setting parameters * @returns Promise<unknown> Updated setting data directly */ update: async (settingsUid, params) => { const response = await settings.update(settingsUid, params); return response.data; }, /** * Delete setting and return result without response metadata * @param settingsUid Unique identifier for the setting to delete * @returns Promise<unknown> Deletion result directly */ delete: async (settingsUid) => { const response = await settings.delete(settingsUid); return response.data; }, }; } //# sourceMappingURL=settings.js.map