80 lines
1.7 KiB
TypeScript
80 lines
1.7 KiB
TypeScript
|
import wrap from './wrap';
|
||
|
interface Route {
|
||
|
Name: string;
|
||
|
}
|
||
|
|
||
|
type Operation = 'replace' | 'move_up' | 'move_down' | 'delete';
|
||
|
|
||
|
function get() {
|
||
|
return wrap(fetch('/cosmos/api/config', {
|
||
|
method: 'GET',
|
||
|
headers: {
|
||
|
'Content-Type': 'application/json'
|
||
|
},
|
||
|
}))
|
||
|
}
|
||
|
|
||
|
function set(values) {
|
||
|
return wrap(fetch('/cosmos/api/config', {
|
||
|
method: 'PUT',
|
||
|
headers: {
|
||
|
'Content-Type': 'application/json'
|
||
|
},
|
||
|
body: JSON.stringify(values),
|
||
|
}))
|
||
|
}
|
||
|
|
||
|
function restart() {
|
||
|
return fetch('/cosmos/api/restart', {
|
||
|
method: 'GET',
|
||
|
headers: {
|
||
|
'Content-Type': 'application/json'
|
||
|
},
|
||
|
})
|
||
|
}
|
||
|
|
||
|
async function rawUpdateRoute(routeName: string, operation: Operation, newRoute?: Route): Promise<void> {
|
||
|
const payload = {
|
||
|
routeName,
|
||
|
operation,
|
||
|
newRoute,
|
||
|
};
|
||
|
|
||
|
if (operation === 'replace') {
|
||
|
if (!newRoute) throw new Error('newRoute must be provided for replace operation');
|
||
|
}
|
||
|
|
||
|
return wrap(fetch('/cosmos/api/config', {
|
||
|
method: 'PATCH',
|
||
|
headers: {
|
||
|
'Content-Type': 'application/json',
|
||
|
},
|
||
|
body: JSON.stringify(payload),
|
||
|
}));
|
||
|
}
|
||
|
|
||
|
async function replaceRoute(routeName: string, newRoute: Route): Promise<void> {
|
||
|
return rawUpdateRoute(routeName, 'replace', newRoute);
|
||
|
}
|
||
|
|
||
|
async function moveRouteUp(routeName: string): Promise<void> {
|
||
|
return rawUpdateRoute(routeName, 'move_up');
|
||
|
}
|
||
|
|
||
|
async function moveRouteDown(routeName: string): Promise<void> {
|
||
|
return rawUpdateRoute(routeName, 'move_down');
|
||
|
}
|
||
|
|
||
|
async function deleteRoute(routeName: string): Promise<void> {
|
||
|
return rawUpdateRoute(routeName, 'delete');
|
||
|
}
|
||
|
export {
|
||
|
get,
|
||
|
set,
|
||
|
restart,
|
||
|
rawUpdateRoute,
|
||
|
replaceRoute,
|
||
|
moveRouteUp,
|
||
|
moveRouteDown,
|
||
|
deleteRoute,
|
||
|
};
|