@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
266 lines • 9.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createUsersResource = createUsersResource;
exports.createUsersDataResource = createUsersDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the users resource methods
* OpenAPI Path: /users → users.*
* @description User management operations
*/
function createUsersResource(executeRequest) {
return {
/**
* List users - /users GET
* @fullPath api.joomla.users.list
* @service joomla
* @domain user-management
* @dataMethod usersData.list
* @discoverable true
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/users',
paramsSchema: schemas_1.UsersParamsSchema,
responseSchema: schemas_1.UsersResponseSchema,
}, params);
},
/**
* Create user - /users POST
* @fullPath api.joomla.users.create
* @service joomla
* @domain user-management
* @dataMethod usersData.create
* @discoverable true
*/
create: async (request) => {
return executeRequest({
method: 'POST',
path: '/users',
paramsSchema: schemas_1.UsersCreateRequestSchema,
responseSchema: schemas_1.UsersCreateResponseSchema,
}, request);
},
/**
* Get user by ID - /users/{id} GET
* @fullPath api.joomla.users.get
* @service joomla
* @domain user-management
* @dataMethod usersData.get
* @discoverable true
*/
get: async (userId) => {
return executeRequest({
method: 'GET',
path: '/users/{id}',
responseSchema: schemas_1.UsersIdResponseSchema,
}, undefined, { id: String(userId) });
},
/**
* Update user - /users/{id} PUT
* @fullPath api.joomla.users.update
* @service joomla
* @domain user-management
* @dataMethod usersData.update
* @discoverable true
*/
update: async (userId, request) => {
return executeRequest({
method: 'PUT',
path: '/users/{id}',
paramsSchema: schemas_1.UsersIdUpdateRequestSchema,
responseSchema: schemas_1.UsersIdUpdateResponseSchema,
}, request, { id: String(userId) });
},
/**
* Delete user - /users/{id} DELETE
* @fullPath api.joomla.users.delete
* @service joomla
* @domain user-management
* @dataMethod usersData.delete
* @discoverable true
*/
delete: async (userId) => {
return executeRequest({
method: 'DELETE',
path: '/users/{id}',
responseSchema: schemas_1.UsersIdDeleteResponseSchema,
}, undefined, { id: String(userId) });
},
/**
* User document - /users/{id}/doc
*/
doc: {
/**
* Get user document - /users/{id}/doc GET
* @fullPath api.joomla.users.doc.get
* @service joomla
* @domain user-management
* @dataMethod usersData.doc.get
* @discoverable true
*/
get: async (userId) => {
return executeRequest({
method: 'GET',
path: '/users/{id}/doc',
responseSchema: schemas_1.UsersIdDocResponseSchema,
}, undefined, { id: String(userId) });
},
},
/**
* Trinity user document - /users/{id}/trinity
*/
trinity: {
/**
* Get trinity user document - /users/{id}/trinity GET
* @fullPath api.joomla.users.trinity.get
* @service joomla
* @domain user-management
* @dataMethod usersData.trinity.get
* @discoverable true
*/
get: async (userId, params) => {
return executeRequest({
method: 'GET',
path: '/users/{id}/trinity',
paramsSchema: schemas_1.UsersIdTrinityParamsSchema,
responseSchema: schemas_1.UsersIdTrinityResponseSchema,
}, params, { id: String(userId) });
},
},
/**
* User groups - /users/{id}/groups
*/
groups: {
/**
* List user groups - /users/{id}/groups GET
* @fullPath api.joomla.users.groups.list
* @service joomla
* @domain user-management
* @dataMethod usersData.groups.list
* @discoverable true
*/
list: async (userId, params) => {
return executeRequest({
method: 'GET',
path: '/users/{id}/groups',
paramsSchema: schemas_1.UsersIdGroupsParamsSchema,
responseSchema: schemas_1.UsersIdGroupsResponseSchema,
}, params, { id: userId });
},
/**
* Create user group mapping - /users/{id}/groups POST
* @fullPath api.joomla.users.groups.create
* @service joomla
* @domain user-management
* @dataMethod usersData.groups.create
* @discoverable true
*/
create: async (userId, request) => {
return executeRequest({
method: 'POST',
path: '/users/{id}/groups',
paramsSchema: schemas_1.UsersIdGroupsCreateRequestSchema,
responseSchema: schemas_1.UsersIdGroupsCreateResponseSchema,
}, request, { id: String(userId) });
},
/**
* Get specific user group - /users/{id}/groups/{groupId} GET
* @fullPath api.joomla.users.groups.get
* @service joomla
* @domain user-management
* @dataMethod usersData.groups.get
* @discoverable true
*/
get: async (userId, groupId) => {
return executeRequest({
method: 'GET',
path: '/users/{id}/groups/{groupId}',
responseSchema: schemas_1.UsersIdGroupsGroupIdResponseSchema,
}, undefined, { id: userId, groupId: String(groupId) });
},
},
/**
* Password verification - /users/verify-password
*/
verifyPassword: {
/**
* Verify user password - /users/verify-password POST
* @fullPath api.joomla.users.verifyPassword.create
* @service joomla
* @domain user-management
* @dataMethod usersData.verifyPassword.create
* @discoverable true
*/
create: async (request) => {
return executeRequest({
method: 'POST',
path: '/users/verify-password',
paramsSchema: schemas_1.UsersVerifyPasswordRequestSchema,
responseSchema: schemas_1.UsersVerifyPasswordResponseSchema,
}, request);
},
},
};
}
/**
* Creates the usersData resource methods (data-only versions)
*/
function createUsersDataResource(users) {
return {
list: async (params) => {
const response = await users.list(params);
return response.data;
},
create: async (request) => {
const response = await users.create(request);
return response.data;
},
get: async (userId) => {
const response = await users.get(userId);
return response.data;
},
update: async (userId, request) => {
const response = await users.update(userId, request);
return response.data;
},
delete: async (userId) => {
const response = await users.delete(userId);
return response.data;
},
doc: {
get: async (userId) => {
const response = await users.doc.get(userId);
return response.data;
},
},
trinity: {
get: async (userId, params) => {
const response = await users.trinity.get(userId, params);
return response.data;
},
},
groups: {
list: async (userId, params) => {
const response = await users.groups.list(userId, params);
return response.data;
},
create: async (userId, request) => {
const response = await users.groups.create(userId, request);
return response.data;
},
get: async (userId, groupId) => {
const response = await users.groups.get(userId, groupId);
return response.data;
},
},
verifyPassword: {
create: async (request) => {
const response = await users.verifyPassword.create(request);
return response.data;
},
},
};
}
//# sourceMappingURL=users.js.map