Finish Persims consolidation
This commit is contained in:
1 parent
cf19d79bbd
commit
32f978b563
1 file changed
+48
@@ -0,0 +1,48 @@
|
||||
const SITE='https://teahub.xyz/tea/site';
|
||||
function endpoint(path){
|
||||
if(path==='session')return SITE+'/session';
|
||||
if(path==='repositories')return SITE+'/repositories';
|
||||
return SITE+'/chat/persimmons/'+path;
|
||||
}
|
||||
|
||||
async function request(path,body){
|
||||
const options={credentials:'include',cache:'no-store',headers:{Accept:'application/json'}};
|
||||
if(body!==undefined){
|
||||
options.method='POST';
|
||||
options.headers['Content-Type']='text/plain;charset=UTF-8';
|
||||
options.body=JSON.stringify(body);
|
||||
}
|
||||
const response=await fetch(endpoint(path),options);
|
||||
let data={};
|
||||
try{data=await response.json()}catch{}
|
||||
if(!response.ok){
|
||||
const error=new Error(data.error||('Request failed ('+response.status+')'));
|
||||
error.status=response.status;
|
||||
throw error;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
export const session=()=>request('session');
|
||||
export const repositories=()=>request('repositories');
|
||||
export const listUser=()=>request('list');
|
||||
export const listRepository=repo=>request('list?repository='+encodeURIComponent(repo));
|
||||
|
||||
export function createConnection(metadata,value){
|
||||
return request('create',{...metadata,credential:value});
|
||||
}
|
||||
export function rotateConnection(item,value){
|
||||
const vault={vault_kind:item.vault_kind||'user'};
|
||||
if(vault.vault_kind==='repository')vault.repository=item.repository;
|
||||
return request('rotate',{id:item.id,credential:value,...vault});
|
||||
}
|
||||
export function revokeConnection(item){
|
||||
const vault={vault_kind:item.vault_kind||'user'};
|
||||
if(vault.vault_kind==='repository')vault.repository=item.repository;
|
||||
return request('revoke',{id:item.id,...vault});
|
||||
}
|
||||
export function deleteConnection(item){
|
||||
const vault={vault_kind:item.vault_kind||'user'};
|
||||
if(vault.vault_kind==='repository')vault.repository=item.repository;
|
||||
return request('delete',{id:item.id,...vault});
|
||||
}
|
||||
Reference in new issue
Block a user