mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-10-25 10:09:03 +01:00
feat: add OAuth APIs with scoped permissions (#1542)
Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
This commit is contained in:
co-authored by
Alessandro Segala
parent
0b2706a488
commit
09d196f7c5
@@ -0,0 +1,56 @@
|
||||
import type {
|
||||
Api,
|
||||
ApiCreate,
|
||||
ApiListItem,
|
||||
ApiPermissionInput,
|
||||
ApiUpdate,
|
||||
ClientApiAccess
|
||||
} from '$lib/types/api.type';
|
||||
import type { ListRequestOptions, Paginated } from '$lib/types/list-request.type';
|
||||
import APIService from './api-service';
|
||||
|
||||
export default class ApisService extends APIService {
|
||||
list = async (options?: ListRequestOptions) => {
|
||||
const res = await this.api.get('/apis', { params: options });
|
||||
return res.data as Paginated<ApiListItem>;
|
||||
};
|
||||
|
||||
listAll = async () => {
|
||||
const res = await this.api.get('/apis', { params: { pagination: { page: 1, limit: 1000 } } });
|
||||
return (res.data as Paginated<ApiListItem>).data;
|
||||
};
|
||||
|
||||
get = async (id: string) => {
|
||||
const res = await this.api.get(`/apis/${id}`);
|
||||
return res.data as Api;
|
||||
};
|
||||
|
||||
create = async (api: ApiCreate) => {
|
||||
const res = await this.api.post('/apis', api);
|
||||
return res.data as Api;
|
||||
};
|
||||
|
||||
update = async (id: string, api: ApiUpdate) => {
|
||||
const res = await this.api.put(`/apis/${id}`, api);
|
||||
return res.data as Api;
|
||||
};
|
||||
|
||||
remove = async (id: string) => {
|
||||
await this.api.delete(`/apis/${id}`);
|
||||
};
|
||||
|
||||
updatePermissions = async (id: string, permissions: ApiPermissionInput[]) => {
|
||||
const res = await this.api.put(`/apis/${id}/permissions`, { permissions });
|
||||
return res.data as Api;
|
||||
};
|
||||
|
||||
getClientAccess = async (clientId: string) => {
|
||||
const res = await this.api.get(`/api-access/${clientId}`);
|
||||
return res.data as ClientApiAccess;
|
||||
};
|
||||
|
||||
updateClientAccess = async (clientId: string, access: ClientApiAccess) => {
|
||||
const res = await this.api.put(`/api-access/${clientId}`, access);
|
||||
return res.data as ClientApiAccess;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user