74 lines
2.2 KiB
JavaScript
74 lines
2.2 KiB
JavaScript
const CoolifyClient = require('../coolifyClient');
|
|
|
|
/**
|
|
* List all services.
|
|
* @param {string} host_url
|
|
* @param {string} token
|
|
* @returns {Promise<Object[]>}
|
|
* @example
|
|
* list('https://coolify.example.com', 'TOKEN');
|
|
*/
|
|
async function list(host_url, token) {
|
|
const client = new CoolifyClient(host_url, token);
|
|
return client.get('/api/v1/services');
|
|
}
|
|
|
|
/**
|
|
* Get service by UUID.
|
|
* @param {string} host_url
|
|
* @param {string} token
|
|
* @param {string} uuid - Service UUID
|
|
* @returns {Promise<Object>}
|
|
* @example
|
|
* get('https://coolify.example.com', 'TOKEN', 'service-uuid');
|
|
*/
|
|
async function get(host_url, token, uuid) {
|
|
const client = new CoolifyClient(host_url, token);
|
|
return client.get(`/api/v1/services/${uuid}`);
|
|
}
|
|
|
|
/**
|
|
* Create a new service.
|
|
* @param {string} host_url
|
|
* @param {string} token
|
|
* @param {Object} data - Service creation payload.
|
|
* @param {string} data.name - The name of the service. (required)
|
|
* @param {string} [data.description] - The description of the service.
|
|
* @param {string} data.server_uuid - The UUID of the server. (required)
|
|
* @param {string} data.project_uuid - The UUID of the project. (required)
|
|
* @param {string} [data.environment_name] - The environment name.
|
|
* @param {string} [data.environment_uuid] - The environment UUID.
|
|
* @returns {Promise<Object>}
|
|
* @example
|
|
* create('https://coolify.example.com', 'TOKEN', {
|
|
* name: 'My Service',
|
|
* server_uuid: 'server-uuid',
|
|
* project_uuid: 'project-uuid',
|
|
* environment_name: 'production',
|
|
* });
|
|
*/
|
|
async function create(host_url, token, data) {
|
|
const client = new CoolifyClient(host_url, token);
|
|
return client.post('/api/v1/services', data);
|
|
}
|
|
|
|
/**
|
|
* Delete service by UUID.
|
|
* @param {string} host_url
|
|
* @param {string} token
|
|
* @param {string} uuid - Service UUID
|
|
* @param {Object} params - Optional query params (delete_configurations, delete_volumes, etc.)
|
|
* @returns {Promise<Object>}
|
|
* @example
|
|
* remove('https://coolify.example.com', 'TOKEN', 'service-uuid', { delete_configurations: true });
|
|
*/
|
|
async function remove(host_url, token, uuid, params = {}) {
|
|
const client = new CoolifyClient(host_url, token);
|
|
return client.delete(`/api/v1/services/${uuid}`, { params });
|
|
}
|
|
|
|
module.exports = {
|
|
list,
|
|
get,
|
|
remove,
|
|
};
|