@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
156 lines • 5.82 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPodcastsResource = createPodcastsResource;
exports.createPodcastsDataResource = createPodcastsDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the podcasts resource methods
* OpenAPI Path: /podcasts → podcasts.*
* @description Manage podcast content with full transcript support
*/
function createPodcastsResource(executeRequest) {
return {
/**
* List podcasts with filtering and search capabilities
*
* @fullPath api.p21Pim.podcasts.list
* @service p21-pim
* @domain content-management
* @dataMethod podcastsData.list
* @discoverable true
* @searchTerms ['podcasts', 'content', 'transcripts', 'media']
* @relatedEndpoints ['joomla.content', 'gregorovich.documents']
* @commonPatterns ['Manage podcast content', 'Handle media transcripts']
*
* @param params Query parameters for filtering and pagination
* @returns Paginated list of podcasts
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/podcasts',
paramsSchema: schemas_1.PodcastListParamsSchema,
responseSchema: schemas_1.PodcastListResponseSchema,
}, params);
},
/**
* Get a specific podcast by UID
*
* @fullPath api.p21Pim.podcasts.get
* @service p21-pim
* @domain content-management
* @dataMethod podcastsData.get
* @discoverable true
* @searchTerms ['podcasts', 'content']
* @relatedEndpoints ['joomla.content']
* @commonPatterns ['Retrieve podcast details']
*
* @param podcastsUid Podcast UID (must match OpenAPI parameter name)
* @returns Single podcast record
*/
get: async (podcastsUid) => {
return executeRequest({
method: 'GET',
path: '/podcasts/{podcastsUid}',
responseSchema: schemas_1.PodcastResponseSchema,
}, undefined, { podcastsUid: String(podcastsUid) });
},
/**
* Create a new podcast record
*
* @fullPath api.p21Pim.podcasts.create
* @service p21-pim
* @domain content-management
* @dataMethod podcastsData.create
* @discoverable true
* @searchTerms ['podcasts', 'create', 'content']
* @relatedEndpoints ['joomla.content']
* @commonPatterns ['Create podcast content']
*
* @param data Podcast data for creation
* @returns Created podcast record
*/
create: async (data) => {
return executeRequest({
method: 'POST',
path: '/podcasts',
paramsSchema: schemas_1.PodcastCreateParamsSchema,
responseSchema: schemas_1.PodcastResponseSchema,
}, data);
},
/**
* Update an existing podcast record
*
* @fullPath api.p21Pim.podcasts.update
* @service p21-pim
* @domain content-management
* @dataMethod podcastsData.update
* @discoverable true
* @searchTerms ['podcasts', 'update', 'content']
* @relatedEndpoints ['joomla.content']
* @commonPatterns ['Update podcast content']
*
* @param podcastsUid Podcast UID (must match OpenAPI parameter name)
* @param data Podcast data for update
* @returns Updated podcast record
*/
update: async (podcastsUid, data) => {
return executeRequest({
method: 'PUT',
path: '/podcasts/{podcastsUid}',
paramsSchema: schemas_1.PodcastUpdateParamsSchema,
responseSchema: schemas_1.PodcastResponseSchema,
}, data, { podcastsUid: String(podcastsUid) });
},
/**
* Soft delete a podcast record
*
* @fullPath api.p21Pim.podcasts.delete
* @service p21-pim
* @domain content-management
* @dataMethod podcastsData.delete
* @discoverable true
* @searchTerms ['podcasts', 'delete', 'content']
* @relatedEndpoints ['joomla.content']
* @commonPatterns ['Delete podcast content']
*
* @param podcastsUid Podcast UID (must match OpenAPI parameter name)
* @returns Deleted podcast confirmation
*/
delete: async (podcastsUid) => {
return executeRequest({
method: 'DELETE',
path: '/podcasts/{podcastsUid}',
responseSchema: schemas_1.PodcastResponseSchema,
}, undefined, { podcastsUid: String(podcastsUid) });
},
};
}
/**
* Creates the podcastsData resource methods (data-only versions)
*/
function createPodcastsDataResource(podcasts) {
return {
list: async (params) => {
const response = await podcasts.list(params);
return response.data;
},
get: async (podcastsUid) => {
const response = await podcasts.get(podcastsUid);
return response.data;
},
create: async (data) => {
const response = await podcasts.create(data);
return response.data;
},
update: async (podcastsUid, data) => {
const response = await podcasts.update(podcastsUid, data);
return response.data;
},
delete: async (podcastsUid) => {
const response = await podcasts.delete(podcastsUid);
return response.data;
},
};
}
//# sourceMappingURL=podcasts.js.map