/* global axios */ /** * Platform API client for Super Admin endpoints. * All endpoints are under /platform/api/v1/ and require super_admin auth. */ class PlatformAPI { constructor() { this.baseURL = '/platform/api/v1'; } // ── Accounts ────────────────────────────────────────── getAccounts(params = {}) { return axios.get(`${this.baseURL}/accounts`, { params }); } getAccount(id) { return axios.get(`${this.baseURL}/accounts/${id}`); } createAccount(data) { return axios.post(`${this.baseURL}/accounts`, data); } updateAccount(id, data) { return axios.patch(`${this.baseURL}/accounts/${id}`, data); } deleteAccount(id) { return axios.delete(`${this.baseURL}/accounts/${id}`); } // ── Users ───────────────────────────────────────────── getUsers(params = {}) { return axios.get(`${this.baseURL}/users`, { params }); } getUser(id) { return axios.get(`${this.baseURL}/users/${id}`); } createUser(data) { return axios.post(`${this.baseURL}/users`, data); } updateUser(id, data) { return axios.patch(`${this.baseURL}/users/${id}`, data); } deleteUser(id) { return axios.delete(`${this.baseURL}/users/${id}`); } // ── Account Users ───────────────────────────────────── getAccountUsers(accountId) { return axios.get( `${this.baseURL}/accounts/${accountId}/account_users` ); } createAccountUser(accountId, data) { return axios.post( `${this.baseURL}/accounts/${accountId}/account_users`, data ); } deleteAccountUser(accountId, userId) { return axios.delete( `${this.baseURL}/accounts/${userId}/account_users`, { data: { user_id: userId } } ); } // ── Agent Bots (platform-level) ─────────────────────── getAgentBots() { return axios.get(`${this.baseURL}/agent_bots`); } createAgentBot(data) { return axios.post(`${this.baseURL}/agent_bots`, data); } updateAgentBot(id, data) { return axios.put(`${this.baseURL}/agent_bots/${id}`, data); } deleteAgentBot(id) { return axios.delete(`${this.baseURL}/agent_bots/${id}`); } // ── Installation Config ─────────────────────────────── getInstallationConfigs(params = {}) { return axios.get(`${this.baseURL}/installation_configs`, { params }); } createInstallationConfig(data) { return axios.post(`${this.baseURL}/installation_configs`, data); } updateInstallationConfig(id, data) { return axios.put(`${this.baseURL}/installation_configs/${id}`, data); } deleteInstallationConfig(id) { return axios.delete(`${this.baseURL}/installation_configs/${id}`); } } export default new PlatformAPI();