@simpleapps-com/augur-api 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -0
- package/dist/cjs/client.d.ts +181 -0
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +449 -0
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/core/base-client.d.ts +104 -0
- package/dist/cjs/core/base-client.d.ts.map +1 -1
- package/dist/cjs/core/base-client.js +201 -0
- package/dist/cjs/core/base-client.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/agr-site/client.d.ts +522 -2
- package/dist/cjs/services/agr-site/client.d.ts.map +1 -1
- package/dist/cjs/services/agr-site/client.js +565 -12
- package/dist/cjs/services/agr-site/client.js.map +1 -1
- package/dist/cjs/services/items/client.d.ts +2 -2
- package/dist/cjs/services/items/schemas/categories.d.ts +20 -20
- package/dist/cjs/services/joomla/client.d.ts +644 -99
- package/dist/cjs/services/joomla/client.d.ts.map +1 -1
- package/dist/cjs/services/joomla/client.js +467 -98
- package/dist/cjs/services/joomla/client.js.map +1 -1
- package/dist/cjs/services/nexus/client.d.ts +1096 -22
- package/dist/cjs/services/nexus/client.d.ts.map +1 -1
- package/dist/cjs/services/nexus/client.js +754 -22
- package/dist/cjs/services/nexus/client.js.map +1 -1
- package/dist/cjs/services/orders/client.d.ts +3 -3
- package/dist/cjs/services/orders/schemas/orders.d.ts +12 -12
- package/dist/cjs/services/orders/schemas/purchase-orders.d.ts +22 -22
- package/dist/cjs/services/p21-core/client.d.ts +627 -0
- package/dist/cjs/services/p21-core/client.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/client.js +704 -0
- package/dist/cjs/services/p21-core/client.js.map +1 -0
- package/dist/cjs/services/p21-core/index.d.ts +3 -0
- package/dist/cjs/services/p21-core/index.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/index.js +21 -0
- package/dist/cjs/services/p21-core/index.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/address.d.ts +88 -0
- package/dist/cjs/services/p21-core/schemas/address.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/address.js +45 -0
- package/dist/cjs/services/p21-core/schemas/address.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/cash-drawer.d.ts +96 -0
- package/dist/cjs/services/p21-core/schemas/cash-drawer.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/cash-drawer.js +39 -0
- package/dist/cjs/services/p21-core/schemas/cash-drawer.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/codes.d.ts +54 -0
- package/dist/cjs/services/p21-core/schemas/codes.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/codes.js +25 -0
- package/dist/cjs/services/p21-core/schemas/codes.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/company.d.ts +80 -0
- package/dist/cjs/services/p21-core/schemas/company.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/company.js +35 -0
- package/dist/cjs/services/p21-core/schemas/company.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/health.d.ts +46 -0
- package/dist/cjs/services/p21-core/schemas/health.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/health.js +7 -0
- package/dist/cjs/services/p21-core/schemas/health.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/index.d.ts +8 -0
- package/dist/cjs/services/p21-core/schemas/index.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/index.js +25 -0
- package/dist/cjs/services/p21-core/schemas/index.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/location.d.ts +84 -0
- package/dist/cjs/services/p21-core/schemas/location.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/location.js +35 -0
- package/dist/cjs/services/p21-core/schemas/location.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas/payment-types.d.ts +39 -0
- package/dist/cjs/services/p21-core/schemas/payment-types.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas/payment-types.js +26 -0
- package/dist/cjs/services/p21-core/schemas/payment-types.js.map +1 -0
- package/dist/cjs/services/p21-core/schemas.d.ts +2 -0
- package/dist/cjs/services/p21-core/schemas.d.ts.map +1 -0
- package/dist/cjs/services/p21-core/schemas.js +19 -0
- package/dist/cjs/services/p21-core/schemas.js.map +1 -0
- package/dist/cjs/services/vmi/schemas/inventory.d.ts +6 -6
- package/dist/cjs/services/vmi/schemas/products.d.ts +6 -6
- package/dist/cjs/services/vmi/schemas/restock.d.ts +12 -12
- package/dist/esm/client.d.ts +181 -0
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +449 -0
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/core/base-client.d.ts +104 -0
- package/dist/esm/core/base-client.d.ts.map +1 -1
- package/dist/esm/core/base-client.js +201 -0
- package/dist/esm/core/base-client.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/agr-site/client.d.ts +522 -2
- package/dist/esm/services/agr-site/client.d.ts.map +1 -1
- package/dist/esm/services/agr-site/client.js +565 -12
- package/dist/esm/services/agr-site/client.js.map +1 -1
- package/dist/esm/services/items/client.d.ts +2 -2
- package/dist/esm/services/items/schemas/categories.d.ts +20 -20
- package/dist/esm/services/joomla/client.d.ts +644 -99
- package/dist/esm/services/joomla/client.d.ts.map +1 -1
- package/dist/esm/services/joomla/client.js +467 -98
- package/dist/esm/services/joomla/client.js.map +1 -1
- package/dist/esm/services/nexus/client.d.ts +1096 -22
- package/dist/esm/services/nexus/client.d.ts.map +1 -1
- package/dist/esm/services/nexus/client.js +754 -22
- package/dist/esm/services/nexus/client.js.map +1 -1
- package/dist/esm/services/orders/client.d.ts +3 -3
- package/dist/esm/services/orders/schemas/orders.d.ts +12 -12
- package/dist/esm/services/orders/schemas/purchase-orders.d.ts +22 -22
- package/dist/esm/services/p21-core/client.d.ts +627 -0
- package/dist/esm/services/p21-core/client.d.ts.map +1 -0
- package/dist/esm/services/p21-core/client.js +700 -0
- package/dist/esm/services/p21-core/client.js.map +1 -0
- package/dist/esm/services/p21-core/index.d.ts +3 -0
- package/dist/esm/services/p21-core/index.d.ts.map +1 -0
- package/dist/esm/services/p21-core/index.js +3 -0
- package/dist/esm/services/p21-core/index.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/address.d.ts +88 -0
- package/dist/esm/services/p21-core/schemas/address.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/address.js +42 -0
- package/dist/esm/services/p21-core/schemas/address.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/cash-drawer.d.ts +96 -0
- package/dist/esm/services/p21-core/schemas/cash-drawer.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/cash-drawer.js +36 -0
- package/dist/esm/services/p21-core/schemas/cash-drawer.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/codes.d.ts +54 -0
- package/dist/esm/services/p21-core/schemas/codes.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/codes.js +22 -0
- package/dist/esm/services/p21-core/schemas/codes.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/company.d.ts +80 -0
- package/dist/esm/services/p21-core/schemas/company.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/company.js +32 -0
- package/dist/esm/services/p21-core/schemas/company.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/health.d.ts +46 -0
- package/dist/esm/services/p21-core/schemas/health.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/health.js +4 -0
- package/dist/esm/services/p21-core/schemas/health.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/index.d.ts +8 -0
- package/dist/esm/services/p21-core/schemas/index.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/index.js +9 -0
- package/dist/esm/services/p21-core/schemas/index.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/location.d.ts +84 -0
- package/dist/esm/services/p21-core/schemas/location.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/location.js +32 -0
- package/dist/esm/services/p21-core/schemas/location.js.map +1 -0
- package/dist/esm/services/p21-core/schemas/payment-types.d.ts +39 -0
- package/dist/esm/services/p21-core/schemas/payment-types.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas/payment-types.js +23 -0
- package/dist/esm/services/p21-core/schemas/payment-types.js.map +1 -0
- package/dist/esm/services/p21-core/schemas.d.ts +2 -0
- package/dist/esm/services/p21-core/schemas.d.ts.map +1 -0
- package/dist/esm/services/p21-core/schemas.js +3 -0
- package/dist/esm/services/p21-core/schemas.js.map +1 -0
- package/dist/esm/services/vmi/schemas/inventory.d.ts +6 -6
- package/dist/esm/services/vmi/schemas/products.d.ts +6 -6
- package/dist/esm/services/vmi/schemas/restock.d.ts +12 -12
- package/dist/types/client.d.ts +181 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/core/base-client.d.ts +104 -0
- package/dist/types/core/base-client.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/services/agr-site/client.d.ts +522 -2
- package/dist/types/services/agr-site/client.d.ts.map +1 -1
- package/dist/types/services/items/client.d.ts +2 -2
- package/dist/types/services/items/schemas/categories.d.ts +20 -20
- package/dist/types/services/joomla/client.d.ts +644 -99
- package/dist/types/services/joomla/client.d.ts.map +1 -1
- package/dist/types/services/nexus/client.d.ts +1096 -22
- package/dist/types/services/nexus/client.d.ts.map +1 -1
- package/dist/types/services/orders/client.d.ts +3 -3
- package/dist/types/services/orders/schemas/orders.d.ts +12 -12
- package/dist/types/services/orders/schemas/purchase-orders.d.ts +22 -22
- package/dist/types/services/p21-core/client.d.ts +627 -0
- package/dist/types/services/p21-core/client.d.ts.map +1 -0
- package/dist/types/services/p21-core/index.d.ts +3 -0
- package/dist/types/services/p21-core/index.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/address.d.ts +88 -0
- package/dist/types/services/p21-core/schemas/address.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/cash-drawer.d.ts +96 -0
- package/dist/types/services/p21-core/schemas/cash-drawer.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/codes.d.ts +54 -0
- package/dist/types/services/p21-core/schemas/codes.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/company.d.ts +80 -0
- package/dist/types/services/p21-core/schemas/company.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/health.d.ts +46 -0
- package/dist/types/services/p21-core/schemas/health.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/index.d.ts +8 -0
- package/dist/types/services/p21-core/schemas/index.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/location.d.ts +84 -0
- package/dist/types/services/p21-core/schemas/location.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas/payment-types.d.ts +39 -0
- package/dist/types/services/p21-core/schemas/payment-types.d.ts.map +1 -0
- package/dist/types/services/p21-core/schemas.d.ts +2 -0
- package/dist/types/services/p21-core/schemas.d.ts.map +1 -0
- package/dist/types/services/vmi/schemas/inventory.d.ts +6 -6
- package/dist/types/services/vmi/schemas/products.d.ts +6 -6
- package/dist/types/services/vmi/schemas/restock.d.ts +12 -12
- package/package.json +1 -1
|
@@ -36,50 +36,91 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
36
36
|
this.content = {
|
|
37
37
|
/**
|
|
38
38
|
* Retrieve a paginated list of content items
|
|
39
|
-
* @description Returns
|
|
39
|
+
* @description Returns articles, documents, and content with filtering, pagination, and edge caching capabilities
|
|
40
|
+
* @fullPath api.joomla.content.list
|
|
41
|
+
* @service joomla
|
|
42
|
+
* @domain content-management
|
|
43
|
+
* @dataMethod listData() - returns only the content array without metadata
|
|
44
|
+
* @pagination Uses count, total, totalResults for pagination metadata. Supports limit/offset parameters.
|
|
45
|
+
* @caching Supports edgeCache parameter (1-8 hours) for improved performance on content that changes infrequently
|
|
46
|
+
* @discoverable true
|
|
47
|
+
* @searchTerms ["content", "articles", "list content", "cms content", "documents", "blog posts"]
|
|
48
|
+
* @relatedEndpoints ["api.joomla.content.get", "api.joomla.content.getDoc", "api.joomla.tags.list"]
|
|
49
|
+
* @commonPatterns ["list articles", "get content", "blog content", "cms articles", "filter content"]
|
|
40
50
|
* @param params Optional filtering, pagination, and caching parameters
|
|
41
|
-
* @param params.
|
|
42
|
-
* @
|
|
51
|
+
* @param params.categoryIdList Comma-separated list of category IDs to filter content (e.g., '1,2,3')
|
|
52
|
+
* @param params.q Search query for filtering content by title/text
|
|
53
|
+
* @param params.limit Maximum number of content items to return (default: 20, max: 100)
|
|
54
|
+
* @param params.offset Number of items to skip for pagination (default: 0)
|
|
55
|
+
* @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) - recommended for content
|
|
56
|
+
* @returns BaseResponse<ContentItem[]> with pagination metadata and content array
|
|
43
57
|
* @throws ValidationError When parameters are invalid or response is malformed
|
|
44
58
|
* @example
|
|
45
59
|
* ```typescript
|
|
46
|
-
* // Get all content
|
|
47
|
-
* const
|
|
60
|
+
* // Get all content with full response metadata
|
|
61
|
+
* const response = await api.joomla.content.list();
|
|
62
|
+
* console.log(`Found ${response.total} articles, showing ${response.data.length}`);
|
|
48
63
|
*
|
|
49
|
-
* //
|
|
50
|
-
* const filtered = await
|
|
64
|
+
* // Filter content by categories with search
|
|
65
|
+
* const filtered = await api.joomla.content.list({
|
|
51
66
|
* categoryIdList: '1,2,3',
|
|
52
|
-
*
|
|
53
|
-
*
|
|
67
|
+
* q: 'product review',
|
|
68
|
+
* limit: 10
|
|
54
69
|
* });
|
|
55
70
|
*
|
|
56
|
-
* // Get content
|
|
57
|
-
* const
|
|
58
|
-
*
|
|
59
|
-
* categoryIdList: '1,2,3',
|
|
71
|
+
* // Get just content data without metadata
|
|
72
|
+
* const articles = await api.joomla.content.listData({
|
|
73
|
+
* categoryIdList: '5',
|
|
60
74
|
* limit: 20
|
|
61
75
|
* });
|
|
76
|
+
* articles.forEach(article => console.log(article.title, article.alias));
|
|
77
|
+
*
|
|
78
|
+
* // Use aggressive caching for content (recommended)
|
|
79
|
+
* const cachedContent = await api.joomla.content.list({
|
|
80
|
+
* edgeCache: 4, // Cache for 4 hours - content changes infrequently
|
|
81
|
+
* categoryIdList: '1,2,3'
|
|
82
|
+
* });
|
|
62
83
|
* ```
|
|
63
84
|
*/
|
|
64
85
|
list: this.createListMethod('/content', schemas_1.ContentListParamsSchema, schemas_1.ContentListResponseSchema),
|
|
65
86
|
/**
|
|
66
|
-
* Get content details by ID
|
|
67
|
-
* @description Returns a single content item by its ID or alias with optional edge caching
|
|
68
|
-
* @
|
|
87
|
+
* Get content details by ID or alias
|
|
88
|
+
* @description Returns a single content item by its ID or alias with optional edge caching and full content metadata
|
|
89
|
+
* @fullPath api.joomla.content.get
|
|
90
|
+
* @service joomla
|
|
91
|
+
* @domain content-management
|
|
92
|
+
* @dataMethod getData(contentId, params) - returns only the content object without metadata
|
|
93
|
+
* @caching Supports edgeCache parameter (1-8 hours) for improved performance
|
|
94
|
+
* @aliasLookup Supports alias-based lookup by using contentId=0 with params.alias
|
|
95
|
+
* @discoverable true
|
|
96
|
+
* @searchTerms ["get content", "content details", "article details", "content by id", "single content"]
|
|
97
|
+
* @relatedEndpoints ["api.joomla.content.list", "api.joomla.content.getDoc", "api.joomla.tags.list"]
|
|
98
|
+
* @commonPatterns ["get content by id", "fetch article", "content details lookup", "get by alias"]
|
|
99
|
+
* @param contentId Content ID (number) or use 0 for alias lookup
|
|
69
100
|
* @param params Optional parameters for alias lookup and caching
|
|
70
|
-
* @param params.
|
|
71
|
-
* @
|
|
101
|
+
* @param params.alias Content alias for lookup when contentId is 0
|
|
102
|
+
* @param params.catid Category ID for alias lookup specificity
|
|
103
|
+
* @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) for improved performance
|
|
104
|
+
* @returns BaseResponse<ContentItem> with complete content details and metadata
|
|
72
105
|
* @throws ValidationError When parameters are invalid or response is malformed
|
|
73
106
|
* @example
|
|
74
107
|
* ```typescript
|
|
75
|
-
* // Get by ID
|
|
76
|
-
* const
|
|
108
|
+
* // Get content by ID with full response metadata
|
|
109
|
+
* const response = await api.joomla.content.get(123);
|
|
110
|
+
* console.log('Article:', response.data.title, 'Status:', response.status);
|
|
111
|
+
*
|
|
112
|
+
* // Get content by alias
|
|
113
|
+
* const byAlias = await api.joomla.content.get(0, {
|
|
114
|
+
* alias: 'my-article',
|
|
115
|
+
* catid: 45
|
|
116
|
+
* });
|
|
77
117
|
*
|
|
78
|
-
* // Get
|
|
79
|
-
* const
|
|
118
|
+
* // Get just content data without metadata
|
|
119
|
+
* const article = await api.joomla.content.getData(123);
|
|
120
|
+
* console.log(article.title, article.introtext, article.fulltext);
|
|
80
121
|
*
|
|
81
|
-
* //
|
|
82
|
-
* const cachedContent = await
|
|
122
|
+
* // Use edge caching for frequently accessed content
|
|
123
|
+
* const cachedContent = await api.joomla.content.get(123, { edgeCache: 8 });
|
|
83
124
|
* ```
|
|
84
125
|
*/
|
|
85
126
|
get: async (contentId, params) => {
|
|
@@ -103,6 +144,40 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
103
144
|
* ```
|
|
104
145
|
*/
|
|
105
146
|
getDoc: this.createDocMethod('/content/{id}/doc', schemas_1.ContentDocumentResponseSchema),
|
|
147
|
+
/**
|
|
148
|
+
* Retrieve a paginated list of content items (data only)
|
|
149
|
+
* @description Returns only the data array from content items response
|
|
150
|
+
* @param params Optional filtering, pagination, and caching parameters
|
|
151
|
+
* @returns Array of content items (data only)
|
|
152
|
+
* @throws ValidationError When parameters are invalid or response is malformed
|
|
153
|
+
*/
|
|
154
|
+
listData: async (params) => {
|
|
155
|
+
const response = await this.content.list(params);
|
|
156
|
+
return response.data;
|
|
157
|
+
},
|
|
158
|
+
/**
|
|
159
|
+
* Get content details by ID (data only)
|
|
160
|
+
* @description Returns only the data from content item details response
|
|
161
|
+
* @param contentId Content ID (number) or alias lookup (use 0 with params.alias)
|
|
162
|
+
* @param params Optional parameters for alias lookup and caching
|
|
163
|
+
* @returns Content item details (data only)
|
|
164
|
+
* @throws ValidationError When parameters are invalid or response is malformed
|
|
165
|
+
*/
|
|
166
|
+
getData: async (contentId, params) => {
|
|
167
|
+
const response = await this.content.get(contentId, params);
|
|
168
|
+
return response.data;
|
|
169
|
+
},
|
|
170
|
+
/**
|
|
171
|
+
* Get content documentation (data only)
|
|
172
|
+
* @description Returns only the data from enhanced content document response
|
|
173
|
+
* @param contentId Content ID (number) or alias lookup (use 0 with query params)
|
|
174
|
+
* @returns Enhanced content document (data only)
|
|
175
|
+
* @throws ValidationError When response is malformed
|
|
176
|
+
*/
|
|
177
|
+
getDocData: async (contentId) => {
|
|
178
|
+
const response = await this.content.getDoc(contentId);
|
|
179
|
+
return response.data;
|
|
180
|
+
},
|
|
106
181
|
};
|
|
107
182
|
/**
|
|
108
183
|
* User endpoints
|
|
@@ -111,43 +186,80 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
111
186
|
this.users = {
|
|
112
187
|
/**
|
|
113
188
|
* Retrieve a paginated list of users
|
|
114
|
-
* @description Returns all users with optional filtering, pagination, and edge caching
|
|
189
|
+
* @description Returns all users with optional filtering, pagination, and edge caching for user management operations
|
|
190
|
+
* @fullPath api.joomla.users.list
|
|
191
|
+
* @service joomla
|
|
192
|
+
* @domain user-management
|
|
193
|
+
* @dataMethod listData() - returns only the user array without metadata
|
|
194
|
+
* @pagination Uses count, total, totalResults for pagination metadata. Supports limit/offset parameters.
|
|
195
|
+
* @caching Supports edgeCache parameter (1-8 hours) for improved performance
|
|
196
|
+
* @discoverable true
|
|
197
|
+
* @searchTerms ["users", "list users", "get users", "user management", "accounts", "profiles"]
|
|
198
|
+
* @relatedEndpoints ["api.joomla.userGroups.list", "api.customers.customer.list", "api.joomla.users.get"]
|
|
199
|
+
* @commonPatterns ["list all users", "search users", "paginate users", "filter users"]
|
|
115
200
|
* @param params Optional filtering, pagination, and caching parameters
|
|
116
|
-
* @param params.
|
|
117
|
-
* @
|
|
201
|
+
* @param params.q Search query for filtering users by username/email
|
|
202
|
+
* @param params.limit Maximum number of users to return (default: 20, max: 100)
|
|
203
|
+
* @param params.offset Number of users to skip for pagination (default: 0)
|
|
204
|
+
* @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) for improved performance
|
|
205
|
+
* @returns BaseResponse<User[]> with pagination metadata and user array
|
|
118
206
|
* @throws ValidationError When parameters are invalid or response is malformed
|
|
119
207
|
* @example
|
|
120
208
|
* ```typescript
|
|
121
|
-
* // Get all users
|
|
122
|
-
* const
|
|
123
|
-
* console.log(`Found ${
|
|
209
|
+
* // Get all users with full response metadata
|
|
210
|
+
* const response = await api.joomla.users.list();
|
|
211
|
+
* console.log(`Found ${response.total} users, showing ${response.data.length}`);
|
|
212
|
+
* console.log('Pagination:', { count: response.count, total: response.total });
|
|
124
213
|
*
|
|
125
|
-
* // Search users
|
|
126
|
-
* const searchResults = await
|
|
214
|
+
* // Search users with filtering
|
|
215
|
+
* const searchResults = await api.joomla.users.list({
|
|
216
|
+
* q: 'admin',
|
|
217
|
+
* limit: 10,
|
|
218
|
+
* offset: 0
|
|
219
|
+
* });
|
|
127
220
|
*
|
|
128
|
-
* // Get
|
|
129
|
-
* const
|
|
221
|
+
* // Get just user data without metadata (using data method)
|
|
222
|
+
* const users = await api.joomla.users.listData({ limit: 20 });
|
|
223
|
+
* users.forEach(user => console.log(user.username, user.email));
|
|
224
|
+
*
|
|
225
|
+
* // Use edge caching for performance
|
|
226
|
+
* const cachedUsers = await api.joomla.users.list({
|
|
130
227
|
* edgeCache: 2, // Cache for 2 hours
|
|
131
|
-
* limit:
|
|
228
|
+
* limit: 50
|
|
132
229
|
* });
|
|
133
230
|
* ```
|
|
134
231
|
*/
|
|
135
232
|
list: this.createListMethod('/users', schemas_1.UserListParamsSchema, schemas_1.UserListResponseSchema),
|
|
136
233
|
/**
|
|
137
234
|
* Get user details by ID
|
|
138
|
-
* @description Returns detailed information for a specific user
|
|
139
|
-
* @
|
|
235
|
+
* @description Returns detailed information for a specific user including profile data and metadata
|
|
236
|
+
* @fullPath api.joomla.users.get
|
|
237
|
+
* @service joomla
|
|
238
|
+
* @domain user-management
|
|
239
|
+
* @dataMethod getData(userId, params) - returns only the user object without metadata
|
|
240
|
+
* @caching Supports edgeCache parameter (1-8 hours) for improved performance
|
|
241
|
+
* @discoverable true
|
|
242
|
+
* @searchTerms ["get user", "user details", "user profile", "user by id", "single user"]
|
|
243
|
+
* @relatedEndpoints ["api.joomla.users.list", "api.joomla.users.getDoc", "api.joomla.users.getTrinityDoc"]
|
|
244
|
+
* @commonPatterns ["get user by id", "fetch user profile", "user details lookup"]
|
|
245
|
+
* @param userId User ID (number or string) - the unique identifier for the user
|
|
140
246
|
* @param params Optional caching parameters
|
|
141
|
-
* @param params.edgeCache
|
|
142
|
-
* @returns User details
|
|
143
|
-
* @throws ValidationError When response is malformed
|
|
247
|
+
* @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) for improved performance
|
|
248
|
+
* @returns BaseResponse<User> with complete user details and metadata
|
|
249
|
+
* @throws ValidationError When userId is invalid or response is malformed
|
|
144
250
|
* @example
|
|
145
251
|
* ```typescript
|
|
146
|
-
*
|
|
252
|
+
* // Get user with full response metadata
|
|
253
|
+
* const response = await api.joomla.users.get(123);
|
|
254
|
+
* console.log('User:', response.data.username, response.data.email);
|
|
255
|
+
* console.log('Status:', response.status, response.message);
|
|
256
|
+
*
|
|
257
|
+
* // Get just user data without metadata
|
|
258
|
+
* const user = await api.joomla.users.getData(123);
|
|
147
259
|
* console.log(user.username, user.email, user.registerDate);
|
|
148
260
|
*
|
|
149
|
-
* //
|
|
150
|
-
* const cachedUser = await
|
|
261
|
+
* // Use edge caching for frequently accessed users
|
|
262
|
+
* const cachedUser = await api.joomla.users.get(123, { edgeCache: 1 });
|
|
151
263
|
* ```
|
|
152
264
|
*/
|
|
153
265
|
get: this.createGetMethod('/users/{id}', schemas_1.UserResponseSchema),
|
|
@@ -201,15 +313,32 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
201
313
|
*/
|
|
202
314
|
groups: {
|
|
203
315
|
/**
|
|
204
|
-
* Get user's
|
|
205
|
-
* @description Returns all groups that a specific user belongs to
|
|
206
|
-
* @
|
|
316
|
+
* Get user's group memberships
|
|
317
|
+
* @description Returns all groups that a specific user belongs to with membership details
|
|
318
|
+
* @fullPath api.joomla.users.groups.list
|
|
319
|
+
* @service joomla
|
|
320
|
+
* @domain user-management
|
|
321
|
+
* @dataMethod listData(userId, params) - returns only the group memberships array without metadata
|
|
322
|
+
* @discoverable true
|
|
323
|
+
* @searchTerms ["user groups", "group membership", "user permissions", "user roles"]
|
|
324
|
+
* @relatedEndpoints ["api.joomla.userGroups.list", "api.joomla.users.groups.createMapping", "api.joomla.users.get"]
|
|
325
|
+
* @commonPatterns ["get user groups", "user permissions", "group membership", "user roles"]
|
|
326
|
+
* @param userId User ID (string) - the unique identifier for the user
|
|
207
327
|
* @param params Optional pagination parameters
|
|
208
|
-
* @
|
|
328
|
+
* @param params.limit Maximum number of group memberships to return (default: 20)
|
|
329
|
+
* @param params.offset Number of memberships to skip for pagination (default: 0)
|
|
330
|
+
* @returns BaseResponse<UserGroupMembership[]> with group membership details and metadata
|
|
209
331
|
* @throws ValidationError When response is malformed
|
|
210
332
|
* @example
|
|
211
333
|
* ```typescript
|
|
212
|
-
*
|
|
334
|
+
* // Get user's groups with full response metadata
|
|
335
|
+
* const response = await api.joomla.users.groups.list('123');
|
|
336
|
+
* response.data.forEach(group => {
|
|
337
|
+
* console.log(`Group: ${group.title} (ID: ${group.groupId})`);
|
|
338
|
+
* });
|
|
339
|
+
*
|
|
340
|
+
* // Get just group memberships data without metadata
|
|
341
|
+
* const groups = await api.joomla.users.groups.listData('123');
|
|
213
342
|
* groups.forEach(group => console.log(group.title, group.groupId));
|
|
214
343
|
* ```
|
|
215
344
|
*/
|
|
@@ -262,29 +391,88 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
262
391
|
responseSchema: schemas_1.UserGroupMappingResponseSchema,
|
|
263
392
|
}, request, { id: String(userId) });
|
|
264
393
|
},
|
|
394
|
+
/**
|
|
395
|
+
* Get user's groups (data only)
|
|
396
|
+
* @description Returns only the data array from user group memberships response
|
|
397
|
+
* @param userId User ID (string)
|
|
398
|
+
* @param params Optional pagination parameters
|
|
399
|
+
* @returns Array of user group memberships (data only)
|
|
400
|
+
* @throws ValidationError When response is malformed
|
|
401
|
+
*/
|
|
402
|
+
listData: async (userId, params) => {
|
|
403
|
+
const response = await this.users.groups.list(userId, params);
|
|
404
|
+
return response.data;
|
|
405
|
+
},
|
|
406
|
+
/**
|
|
407
|
+
* Get specific user group membership (data only)
|
|
408
|
+
* @description Returns only the data from user group membership details response
|
|
409
|
+
* @param userId User ID (string)
|
|
410
|
+
* @param groupId Group ID (number or string)
|
|
411
|
+
* @returns User group membership details (data only)
|
|
412
|
+
* @throws ValidationError When response is malformed
|
|
413
|
+
*/
|
|
414
|
+
getData: async (userId, groupId) => {
|
|
415
|
+
const response = await this.users.groups.get(userId, groupId);
|
|
416
|
+
return response.data;
|
|
417
|
+
},
|
|
418
|
+
/**
|
|
419
|
+
* Create or update user group mapping (data only)
|
|
420
|
+
* @description Returns only the data from created/updated group mapping response
|
|
421
|
+
* @param userId User ID (number or string)
|
|
422
|
+
* @param request Group mapping request data
|
|
423
|
+
* @returns Group mapping information (data only)
|
|
424
|
+
* @throws ValidationError When request is invalid or response is malformed
|
|
425
|
+
*/
|
|
426
|
+
createMappingData: async (userId, request) => {
|
|
427
|
+
const response = await this.users.groups.createMapping(userId, request);
|
|
428
|
+
return response.data;
|
|
429
|
+
},
|
|
265
430
|
},
|
|
266
431
|
/**
|
|
267
|
-
* Verify user
|
|
268
|
-
* @description Verifies
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
* @
|
|
276
|
-
* @
|
|
277
|
-
*
|
|
432
|
+
* Verify user credentials and authenticate
|
|
433
|
+
* @description Verifies username/password combination and returns authentication token, supports cross-site authentication
|
|
434
|
+
* @fullPath api.joomla.users.verifyPassword
|
|
435
|
+
* @service joomla
|
|
436
|
+
* @domain authentication
|
|
437
|
+
* @dataMethod verifyPasswordData(request) - returns only the verification result without metadata
|
|
438
|
+
* @crossSite Supports authentication across multiple sites when called from 'augur_info' site
|
|
439
|
+
* @discoverable true
|
|
440
|
+
* @searchTerms ["verify password", "authenticate", "login", "user authentication", "credentials", "sign in"]
|
|
441
|
+
* @relatedEndpoints ["api.joomla.users.get", "api.joomla.users.create", "api.customers.customer.get"]
|
|
442
|
+
* @commonPatterns ["user login", "authenticate user", "verify credentials", "password check"]
|
|
443
|
+
* @param request Authentication request containing username, password, and optional siteId
|
|
444
|
+
* @param request.username User's username for authentication
|
|
445
|
+
* @param request.password User's password for verification
|
|
446
|
+
* @param request.siteId Optional site ID for cross-site authentication (when using augur_info)
|
|
447
|
+
* @returns BaseResponse<VerifyPasswordResult> with verification status, user info, and JWT token
|
|
448
|
+
* @throws ValidationError When credentials are invalid or request is malformed
|
|
278
449
|
* @example
|
|
279
|
-
*
|
|
280
|
-
*
|
|
450
|
+
* ```typescript
|
|
451
|
+
* // Standard authentication with full response
|
|
452
|
+
* const response = await api.joomla.users.verifyPassword({
|
|
453
|
+
* username: 'johndoe',
|
|
454
|
+
* password: 'securePassword123'
|
|
455
|
+
* });
|
|
281
456
|
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
457
|
+
* if (response.data.verified) {
|
|
458
|
+
* console.log('Login successful:', response.data.username);
|
|
459
|
+
* console.log('JWT Token:', response.data.token);
|
|
460
|
+
* console.log('User ID:', response.data.userId);
|
|
461
|
+
* }
|
|
462
|
+
*
|
|
463
|
+
* // Cross-site authentication (when using augur_info site)
|
|
464
|
+
* const crossSiteAuth = await api.joomla.users.verifyPassword({
|
|
465
|
+
* username: 'johndoe',
|
|
466
|
+
* password: 'securePassword123',
|
|
286
467
|
* siteId: 'customer_site_1'
|
|
287
468
|
* });
|
|
469
|
+
*
|
|
470
|
+
* // Get just verification data without metadata
|
|
471
|
+
* const authResult = await api.joomla.users.verifyPasswordData({
|
|
472
|
+
* username: 'johndoe',
|
|
473
|
+
* password: 'securePassword123'
|
|
474
|
+
* });
|
|
475
|
+
* ```
|
|
288
476
|
*/
|
|
289
477
|
verifyPassword: async (request) => {
|
|
290
478
|
return this.executeRequest({
|
|
@@ -295,20 +483,43 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
295
483
|
}, request);
|
|
296
484
|
},
|
|
297
485
|
/**
|
|
298
|
-
* Create a new user
|
|
299
|
-
* @description Creates a new user account in the system
|
|
486
|
+
* Create a new user account
|
|
487
|
+
* @description Creates a new user account in the system with username, email, name, and password
|
|
488
|
+
* @fullPath api.joomla.users.create
|
|
489
|
+
* @service joomla
|
|
490
|
+
* @domain user-management
|
|
491
|
+
* @dataMethod createData(request) - returns only the created user object without metadata
|
|
492
|
+
* @discoverable true
|
|
493
|
+
* @searchTerms ["create user", "new user", "user registration", "add user", "register user"]
|
|
494
|
+
* @relatedEndpoints ["api.joomla.users.list", "api.joomla.users.get", "api.joomla.users.verifyPassword"]
|
|
495
|
+
* @commonPatterns ["register new user", "create account", "add user account", "user signup"]
|
|
300
496
|
* @param request User creation request data including username, email, name, and password
|
|
301
|
-
* @
|
|
497
|
+
* @param request.username Unique username for the new user (required)
|
|
498
|
+
* @param request.email Valid email address for the user (required)
|
|
499
|
+
* @param request.name Full display name for the user (required)
|
|
500
|
+
* @param request.password Secure password for the user (required, minimum 8 characters)
|
|
501
|
+
* @returns BaseResponse<User> with created user information including ID, username, and email
|
|
302
502
|
* @throws ValidationError When request is invalid or response is malformed
|
|
303
503
|
* @example
|
|
304
504
|
* ```typescript
|
|
305
|
-
*
|
|
505
|
+
* // Create new user with full response metadata
|
|
506
|
+
* const response = await api.joomla.users.create({
|
|
306
507
|
* username: 'newuser',
|
|
307
508
|
* email: 'user@example.com',
|
|
308
509
|
* name: 'New User',
|
|
309
510
|
* password: 'SecurePass123!'
|
|
310
511
|
* });
|
|
311
|
-
* console.log('Created user:',
|
|
512
|
+
* console.log('Created user:', response.data.id, response.data.username);
|
|
513
|
+
* console.log('Status:', response.status, response.message);
|
|
514
|
+
*
|
|
515
|
+
* // Get just created user data without metadata
|
|
516
|
+
* const newUser = await api.joomla.users.createData({
|
|
517
|
+
* username: 'johndoe',
|
|
518
|
+
* email: 'john@example.com',
|
|
519
|
+
* name: 'John Doe',
|
|
520
|
+
* password: 'MySecurePassword123!'
|
|
521
|
+
* });
|
|
522
|
+
* console.log('New user ID:', newUser.id, 'Email:', newUser.email);
|
|
312
523
|
* ```
|
|
313
524
|
*/
|
|
314
525
|
create: this.createCreateMethod('/users', schemas_1.CreateUserRequestSchema, schemas_1.CreateUserResponseSchema),
|
|
@@ -345,6 +556,96 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
345
556
|
* ```
|
|
346
557
|
*/
|
|
347
558
|
block: this.createDeleteMethod('/users/{id}', schemas_1.BlockUserResponseSchema),
|
|
559
|
+
/**
|
|
560
|
+
* Retrieve a paginated list of users (data only)
|
|
561
|
+
* @description Returns only the data array from users response
|
|
562
|
+
* @param params Optional filtering, pagination, and caching parameters
|
|
563
|
+
* @returns Array of users (data only)
|
|
564
|
+
* @throws ValidationError When parameters are invalid or response is malformed
|
|
565
|
+
*/
|
|
566
|
+
listData: async (params) => {
|
|
567
|
+
const response = await this.users.list(params);
|
|
568
|
+
return response.data;
|
|
569
|
+
},
|
|
570
|
+
/**
|
|
571
|
+
* Get user details by ID (data only)
|
|
572
|
+
* @description Returns only the data from user details response
|
|
573
|
+
* @param userId User ID (number or string)
|
|
574
|
+
* @param params Optional caching parameters
|
|
575
|
+
* @returns User details (data only)
|
|
576
|
+
* @throws ValidationError When response is malformed
|
|
577
|
+
*/
|
|
578
|
+
getData: async (userId, params) => {
|
|
579
|
+
const response = await this.users.get(userId, params);
|
|
580
|
+
return response.data;
|
|
581
|
+
},
|
|
582
|
+
/**
|
|
583
|
+
* Get user documentation (data only)
|
|
584
|
+
* @description Returns only the data from enhanced user document response
|
|
585
|
+
* @param userId User ID (number or string)
|
|
586
|
+
* @returns Enhanced user document (data only)
|
|
587
|
+
* @throws ValidationError When response is malformed
|
|
588
|
+
*/
|
|
589
|
+
getDocData: async (userId) => {
|
|
590
|
+
const response = await this.users.getDoc(userId);
|
|
591
|
+
return response.data;
|
|
592
|
+
},
|
|
593
|
+
/**
|
|
594
|
+
* Get Trinity user documentation (data only)
|
|
595
|
+
* @description Returns only the data from specialized Trinity business logic document response
|
|
596
|
+
* @param userId User ID (number or string)
|
|
597
|
+
* @param params Optional filtering and pagination parameters
|
|
598
|
+
* @returns Trinity document (data only)
|
|
599
|
+
* @throws ValidationError When parameters are invalid or response is malformed
|
|
600
|
+
*/
|
|
601
|
+
getTrinityDocData: async (userId, params) => {
|
|
602
|
+
const response = await this.users.getTrinityDoc(userId, params);
|
|
603
|
+
return response.data;
|
|
604
|
+
},
|
|
605
|
+
/**
|
|
606
|
+
* Verify user password (data only)
|
|
607
|
+
* @description Returns only the data from password verification response
|
|
608
|
+
* @param request Object containing username, password, and optional siteId for cross-site auth
|
|
609
|
+
* @returns Verification result (data only)
|
|
610
|
+
*/
|
|
611
|
+
verifyPasswordData: async (request) => {
|
|
612
|
+
const response = await this.users.verifyPassword(request);
|
|
613
|
+
return response.data;
|
|
614
|
+
},
|
|
615
|
+
/**
|
|
616
|
+
* Create a new user (data only)
|
|
617
|
+
* @description Returns only the data from created user response
|
|
618
|
+
* @param request User creation request data including username, email, name, and password
|
|
619
|
+
* @returns Created user information (data only)
|
|
620
|
+
* @throws ValidationError When request is invalid or response is malformed
|
|
621
|
+
*/
|
|
622
|
+
createData: async (request) => {
|
|
623
|
+
const response = await this.users.create(request);
|
|
624
|
+
return response.data;
|
|
625
|
+
},
|
|
626
|
+
/**
|
|
627
|
+
* Update an existing user (data only)
|
|
628
|
+
* @description Returns only the data from updated user response
|
|
629
|
+
* @param userId User ID (number or string)
|
|
630
|
+
* @param request User update data with optional fields to modify
|
|
631
|
+
* @returns Updated user object (data only)
|
|
632
|
+
* @throws ValidationError When request is invalid or response is malformed
|
|
633
|
+
*/
|
|
634
|
+
updateData: async (userId, request) => {
|
|
635
|
+
const response = await this.users.update(userId, request);
|
|
636
|
+
return response.data;
|
|
637
|
+
},
|
|
638
|
+
/**
|
|
639
|
+
* Block (deactivate) a user (data only)
|
|
640
|
+
* @description Returns only the data from user blocking response
|
|
641
|
+
* @param userId User ID (number or string)
|
|
642
|
+
* @returns Blocking operation result (data only)
|
|
643
|
+
* @throws ValidationError When response is malformed
|
|
644
|
+
*/
|
|
645
|
+
blockData: async (userId) => {
|
|
646
|
+
const response = await this.users.block(userId);
|
|
647
|
+
return response.data;
|
|
648
|
+
},
|
|
348
649
|
};
|
|
349
650
|
/**
|
|
350
651
|
* User Groups endpoints
|
|
@@ -352,31 +653,47 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
352
653
|
*/
|
|
353
654
|
this.userGroups = {
|
|
354
655
|
/**
|
|
355
|
-
* Get user groups
|
|
356
|
-
* @description Returns
|
|
656
|
+
* Get hierarchical list of user groups
|
|
657
|
+
* @description Returns system-wide user groups with hierarchy information, filtering, and caching
|
|
658
|
+
* @fullPath api.joomla.userGroups.list
|
|
659
|
+
* @service joomla
|
|
660
|
+
* @domain user-management
|
|
661
|
+
* @dataMethod listData(params) - returns only the user groups array without metadata
|
|
662
|
+
* @hierarchy Returns groups with level and parent relationship information
|
|
663
|
+
* @caching Supports edgeCache parameter (1-8 hours) - recommended since groups rarely change
|
|
664
|
+
* @discoverable true
|
|
665
|
+
* @searchTerms ["user groups", "groups", "permissions", "roles", "group hierarchy", "user roles"]
|
|
666
|
+
* @relatedEndpoints ["api.joomla.users.groups.list", "api.joomla.users.list", "api.joomla.users.groups.createMapping"]
|
|
667
|
+
* @commonPatterns ["list user groups", "get groups", "group permissions", "user roles", "group hierarchy"]
|
|
357
668
|
* @param params Optional filtering, ordering, and caching parameters
|
|
358
|
-
* @param params.
|
|
359
|
-
* @
|
|
669
|
+
* @param params.orderBy Sort order (e.g., 'title|ASC', 'title|DESC', 'level|ASC')
|
|
670
|
+
* @param params.parentIdList Comma-separated list of parent group IDs to filter (e.g., '1,2')
|
|
671
|
+
* @param params.edgeCache Cache duration in hours (1-8) - highly recommended since groups rarely change
|
|
672
|
+
* @returns BaseResponse<UserGroup[]> with hierarchy metadata and groups array
|
|
360
673
|
* @throws ValidationError When parameters are invalid or response is malformed
|
|
361
674
|
* @example
|
|
362
675
|
* ```typescript
|
|
363
|
-
* // Get all user groups
|
|
364
|
-
* const
|
|
676
|
+
* // Get all user groups with hierarchy information
|
|
677
|
+
* const response = await api.joomla.userGroups.list();
|
|
678
|
+
* response.data.forEach(group => {
|
|
679
|
+
* console.log(`${group.title} (Level: ${group.level}, Parent: ${group.parentId})`);
|
|
680
|
+
* });
|
|
365
681
|
*
|
|
366
|
-
* //
|
|
367
|
-
* const
|
|
368
|
-
* orderBy: 'title|
|
|
682
|
+
* // Filter and order groups
|
|
683
|
+
* const ordered = await api.joomla.userGroups.list({
|
|
684
|
+
* orderBy: 'title|ASC',
|
|
369
685
|
* parentIdList: '1,2'
|
|
370
686
|
* });
|
|
371
687
|
*
|
|
372
|
-
* // Get groups
|
|
373
|
-
* const
|
|
374
|
-
*
|
|
375
|
-
* orderBy: 'title|ASC'
|
|
688
|
+
* // Get just groups data without metadata
|
|
689
|
+
* const groups = await api.joomla.userGroups.listData({
|
|
690
|
+
* orderBy: 'level|ASC'
|
|
376
691
|
* });
|
|
377
692
|
*
|
|
378
|
-
* groups
|
|
379
|
-
*
|
|
693
|
+
* // Use long caching since groups rarely change
|
|
694
|
+
* const cachedGroups = await api.joomla.userGroups.list({
|
|
695
|
+
* edgeCache: 8, // Cache for 8 hours - groups change very infrequently
|
|
696
|
+
* orderBy: 'title|ASC'
|
|
380
697
|
* });
|
|
381
698
|
* ```
|
|
382
699
|
*/
|
|
@@ -388,6 +705,17 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
388
705
|
responseSchema: schemas_1.UserGroupListResponseSchema,
|
|
389
706
|
}, params);
|
|
390
707
|
},
|
|
708
|
+
/**
|
|
709
|
+
* Get user groups (data only)
|
|
710
|
+
* @description Returns only the data array from user groups response
|
|
711
|
+
* @param params Optional filtering, ordering, and caching parameters
|
|
712
|
+
* @returns Array of user groups (data only)
|
|
713
|
+
* @throws ValidationError When parameters are invalid or response is malformed
|
|
714
|
+
*/
|
|
715
|
+
listData: async (params) => {
|
|
716
|
+
const response = await this.userGroups.list(params);
|
|
717
|
+
return response.data;
|
|
718
|
+
},
|
|
391
719
|
};
|
|
392
720
|
/**
|
|
393
721
|
* Tags endpoints
|
|
@@ -395,36 +723,66 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
395
723
|
*/
|
|
396
724
|
this.tags = {
|
|
397
725
|
/**
|
|
398
|
-
* Get tags
|
|
399
|
-
* @description Returns
|
|
726
|
+
* Get hierarchical list of content tags
|
|
727
|
+
* @description Returns content tags with hierarchy, usage information, filtering, search, and edge caching
|
|
728
|
+
* @fullPath api.joomla.tags.list
|
|
729
|
+
* @service joomla
|
|
730
|
+
* @domain content-management
|
|
731
|
+
* @dataMethod listData(params) - returns only the tags array without metadata
|
|
732
|
+
* @hierarchy Returns tags with level and parent relationship information
|
|
733
|
+
* @caching Supports edgeCache parameter (1-8 hours) - recommended for reference data
|
|
734
|
+
* @discoverable true
|
|
735
|
+
* @searchTerms ["tags", "content tags", "taxonomy", "categories", "tag hierarchy"]
|
|
736
|
+
* @relatedEndpoints ["api.joomla.content.list", "api.joomla.content.get", "api.joomla.userGroups.list"]
|
|
737
|
+
* @commonPatterns ["list tags", "get tags", "search tags", "content taxonomy", "tag filtering"]
|
|
400
738
|
* @param params Optional filtering, search, and caching parameters
|
|
401
|
-
* @param params.
|
|
402
|
-
* @
|
|
739
|
+
* @param params.q Search query for filtering tags by title
|
|
740
|
+
* @param params.catId Category ID to filter tags by category
|
|
741
|
+
* @param params.limit Maximum number of tags to return (default: 20, max: 100)
|
|
742
|
+
* @param params.offset Number of tags to skip for pagination (default: 0)
|
|
743
|
+
* @param params.edgeCache Cache duration in hours (1-8) - recommended for reference data
|
|
744
|
+
* @returns BaseResponse<Tag[]> with hierarchy metadata and tags array
|
|
403
745
|
* @throws ValidationError When parameters are invalid or response is malformed
|
|
404
746
|
* @example
|
|
405
747
|
* ```typescript
|
|
406
|
-
* // Get all tags
|
|
407
|
-
* const
|
|
748
|
+
* // Get all tags with hierarchy information
|
|
749
|
+
* const response = await api.joomla.tags.list();
|
|
750
|
+
* response.data.forEach(tag => {
|
|
751
|
+
* console.log(`${tag.title} (${tag.hits} hits, Level: ${tag.level})`);
|
|
752
|
+
* });
|
|
408
753
|
*
|
|
409
|
-
* // Search tags
|
|
410
|
-
* const searchTags = await
|
|
754
|
+
* // Search tags by keyword
|
|
755
|
+
* const searchTags = await api.joomla.tags.list({
|
|
411
756
|
* q: 'technology',
|
|
412
757
|
* catId: 1,
|
|
413
758
|
* limit: 10
|
|
414
759
|
* });
|
|
415
760
|
*
|
|
416
|
-
* // Get tags
|
|
417
|
-
* const
|
|
418
|
-
* edgeCache: 5, // Cache for 5 hours
|
|
761
|
+
* // Get just tags data without metadata
|
|
762
|
+
* const tags = await api.joomla.tags.listData({
|
|
419
763
|
* limit: 50
|
|
420
764
|
* });
|
|
765
|
+
* tags.forEach(tag => console.log(tag.title, tag.alias));
|
|
421
766
|
*
|
|
422
|
-
*
|
|
423
|
-
*
|
|
767
|
+
* // Use caching for reference data (recommended)
|
|
768
|
+
* const cachedTags = await api.joomla.tags.list({
|
|
769
|
+
* edgeCache: 5, // Cache for 5 hours - tags are reference data
|
|
770
|
+
* limit: 100
|
|
424
771
|
* });
|
|
425
772
|
* ```
|
|
426
773
|
*/
|
|
427
774
|
list: this.createListMethod('/tags', schemas_1.TagListParamsSchema, schemas_1.TagListResponseSchema),
|
|
775
|
+
/**
|
|
776
|
+
* Get tags (data only)
|
|
777
|
+
* @description Returns only the data array from tags response
|
|
778
|
+
* @param params Optional filtering, search, and caching parameters
|
|
779
|
+
* @returns Array of tags (data only)
|
|
780
|
+
* @throws ValidationError When parameters are invalid or response is malformed
|
|
781
|
+
*/
|
|
782
|
+
listData: async (params) => {
|
|
783
|
+
const response = await this.tags.list(params);
|
|
784
|
+
return response.data;
|
|
785
|
+
},
|
|
428
786
|
};
|
|
429
787
|
/**
|
|
430
788
|
* Menu endpoints
|
|
@@ -451,6 +809,17 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
|
|
|
451
809
|
responseSchema: schemas_1.ContentDocumentResponseSchema,
|
|
452
810
|
}, undefined, { id: menuId });
|
|
453
811
|
},
|
|
812
|
+
/**
|
|
813
|
+
* Get menu documentation (data only)
|
|
814
|
+
* @description Returns only the data from enhanced menu item document response
|
|
815
|
+
* @param menuId Menu item ID (string)
|
|
816
|
+
* @returns Menu document (data only)
|
|
817
|
+
* @throws ValidationError When response is malformed
|
|
818
|
+
*/
|
|
819
|
+
getDocData: async (menuId) => {
|
|
820
|
+
const response = await this.menu.getDoc(menuId);
|
|
821
|
+
return response.data;
|
|
822
|
+
},
|
|
454
823
|
};
|
|
455
824
|
/**
|
|
456
825
|
* Check service health (no bearer token required)
|