Initial commit
This commit is contained in:
109
Client-TestApi/src/services/serviceCatalog.js
Normal file
109
Client-TestApi/src/services/serviceCatalog.js
Normal file
@@ -0,0 +1,109 @@
|
||||
// src/services/serviceCatalog.js
|
||||
|
||||
/**
|
||||
* Service catalog organized by Provider → Service → Action
|
||||
*
|
||||
* Structure:
|
||||
* - provider: Ad platform (google, meta, msads)
|
||||
* - service: Sub-module/microservice (system, campaigns, reporting, accounts)
|
||||
* - action: Specific operation (ping, create, list, get, update, delete)
|
||||
*/
|
||||
export const servicesByProvider = {
|
||||
gateway: [
|
||||
{
|
||||
id: 'GatewayPing',
|
||||
service: 'system',
|
||||
action: 'ping',
|
||||
label: 'Gateway Ping (SQL test)',
|
||||
sample: {},
|
||||
endpoint: '/api/test/ping',
|
||||
method: 'GET'
|
||||
}
|
||||
],
|
||||
google: [
|
||||
// System service
|
||||
{
|
||||
id: 'Ping',
|
||||
service: 'system',
|
||||
action: 'ping',
|
||||
label: 'System: Ping (GoogleApi round trip)',
|
||||
sample: {}
|
||||
},
|
||||
// Campaigns service
|
||||
{
|
||||
id: 'CreateCampaign',
|
||||
service: 'campaigns',
|
||||
action: 'create',
|
||||
label: 'Campaigns: Create',
|
||||
sample: { name: 'Test Campaign', budgetMicros: 10000000, type: 'Search' }
|
||||
},
|
||||
{
|
||||
id: 'ListCampaigns',
|
||||
service: 'campaigns',
|
||||
action: 'list',
|
||||
label: 'Campaigns: List',
|
||||
sample: {}
|
||||
},
|
||||
{
|
||||
id: 'GetCampaign',
|
||||
service: 'campaigns',
|
||||
action: 'get',
|
||||
label: 'Campaigns: Get by ID',
|
||||
sample: { campaignId: 'campaigns/123' }
|
||||
},
|
||||
// Reporting service
|
||||
{
|
||||
id: 'GetCampaignStats',
|
||||
service: 'reporting',
|
||||
action: 'campaignStats',
|
||||
label: 'Reporting: Campaign Stats',
|
||||
sample: { campaignId: 'campaigns/123', startDate: '2026-01-01', endDate: '2026-01-26' }
|
||||
},
|
||||
{
|
||||
id: 'GetAccountStats',
|
||||
service: 'reporting',
|
||||
action: 'accountStats',
|
||||
label: 'Reporting: Account Stats',
|
||||
sample: { startDate: '2026-01-01', endDate: '2026-01-26' }
|
||||
},
|
||||
// Accounts service
|
||||
{
|
||||
id: 'ListAccounts',
|
||||
service: 'accounts',
|
||||
action: 'list',
|
||||
label: 'Accounts: List Accessible',
|
||||
sample: {}
|
||||
},
|
||||
{
|
||||
id: 'GetAccount',
|
||||
service: 'accounts',
|
||||
action: 'get',
|
||||
label: 'Accounts: Get Details',
|
||||
sample: { customerId: '1234567890' }
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
export function getServices(providerId) {
|
||||
return servicesByProvider[providerId] || [];
|
||||
}
|
||||
|
||||
export function getService(providerId, serviceId) {
|
||||
return getServices(providerId).find(s => s.id === serviceId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get unique service modules for a provider
|
||||
*/
|
||||
export function getServiceModules(providerId) {
|
||||
const services = getServices(providerId);
|
||||
const modules = [...new Set(services.map(s => s.service))];
|
||||
return modules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get actions for a specific service module
|
||||
*/
|
||||
export function getActionsForModule(providerId, serviceModule) {
|
||||
return getServices(providerId).filter(s => s.service === serviceModule);
|
||||
}
|
||||
Reference in New Issue
Block a user