@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
196 lines • 10.9 kB
TypeScript
import type { BaseResponse } from '../../../core/base-client';
import { type SettingCreateParams, type SettingListParams, type SettingUpdateParams } from '../schemas';
import type { AgrSiteClient } from '../client';
type ExecuteRequest = AgrSiteClient['executeRequest'];
/**
* Creates the settings resource methods
* OpenAPI Path: /settings → settings.*
* @description Comprehensive settings configuration management for site content and behavior
*/
export declare function createSettingsResource(executeRequest: ExecuteRequest): {
/**
* 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: (params?: SettingListParams) => Promise<BaseResponse<unknown[]>>;
/**
* 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: (settingsUid: number) => Promise<BaseResponse<unknown>>;
/**
* 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: (params: SettingCreateParams) => Promise<BaseResponse<unknown>>;
/**
* 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: (settingsUid: number, params: SettingUpdateParams) => Promise<BaseResponse<unknown>>;
/**
* 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: (settingsUid: number) => Promise<BaseResponse<unknown>>;
};
/**
* Creates the settingsData resource methods (data-only versions)
*/
export declare function createSettingsDataResource(settings: ReturnType<typeof createSettingsResource>): {
/**
* Get settings data without response metadata
* @param params Optional filtering and pagination parameters
* @returns Promise<unknown[]> Settings array directly
*/
list: (params?: SettingListParams) => Promise<unknown[]>;
/**
* Get setting data without response metadata
* @param settingsUid Unique identifier for the setting
* @returns Promise<unknown> Setting data directly
*/
get: (settingsUid: number) => Promise<unknown>;
/**
* Create setting and return data without response metadata
* @param params Setting creation parameters
* @returns Promise<unknown> Created setting data directly
*/
create: (params: SettingCreateParams) => Promise<unknown>;
/**
* 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: (settingsUid: number, params: SettingUpdateParams) => Promise<unknown>;
/**
* Delete setting and return result without response metadata
* @param settingsUid Unique identifier for the setting to delete
* @returns Promise<unknown> Deletion result directly
*/
delete: (settingsUid: number) => Promise<unknown>;
};
export type SettingsResource = ReturnType<typeof createSettingsResource>;
export type SettingsDataResource = ReturnType<typeof createSettingsDataResource>;
export {};
//# sourceMappingURL=settings.d.ts.map