[feat][apikey] add apikey store and logic
This commit is contained in:
parent
a807d9c809
commit
096c190946
|
@ -0,0 +1,61 @@
|
||||||
|
import { defineStore } from 'pinia';
|
||||||
|
import { api } from '../internal';
|
||||||
|
import { isAxiosError, useMainStore } from '.';
|
||||||
|
|
||||||
|
export const useApiKeyStore = defineStore({
|
||||||
|
id: 'apiKeys',
|
||||||
|
|
||||||
|
state: () => ({
|
||||||
|
apiKeys: [] as FG.ApiKey[],
|
||||||
|
}),
|
||||||
|
|
||||||
|
getters: {},
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
async getApiKeys(): Promise<FG.ApiKey[]> {
|
||||||
|
try {
|
||||||
|
const mainStore = useMainStore();
|
||||||
|
const { data } = await api.get<FG.ApiKey[]>(
|
||||||
|
`/users/${mainStore.currentUser.userid}/api_keys`
|
||||||
|
);
|
||||||
|
|
||||||
|
this.apiKeys = data;
|
||||||
|
|
||||||
|
return data;
|
||||||
|
} catch (error) {
|
||||||
|
return [] as FG.ApiKey[];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async deleteApiKey(id: number): Promise<boolean> {
|
||||||
|
const mainStore = useMainStore();
|
||||||
|
|
||||||
|
try {
|
||||||
|
await api.delete(`/users/${mainStore.currentUser.userid}/api_keys/${id}`);
|
||||||
|
this.apiKeys = this.apiKeys.filter((apiKey: FG.ApiKey) => apiKey.id !== id);
|
||||||
|
return true;
|
||||||
|
} catch (error) {
|
||||||
|
// Ignore 401, as this means we are already logged out, throw all other
|
||||||
|
if (!isAxiosError(error, 401)) throw error;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
|
async createApiKey(apiKey: FG.ApiKey): Promise<FG.ApiKey> {
|
||||||
|
const mainStore = useMainStore();
|
||||||
|
|
||||||
|
try {
|
||||||
|
const { data } = await api.post<FG.ApiKey>(
|
||||||
|
`/users/${mainStore.currentUser.userid}/api_keys`,
|
||||||
|
apiKey
|
||||||
|
);
|
||||||
|
|
||||||
|
this.apiKeys.push(data);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
} catch (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
|
@ -21,3 +21,4 @@ export function isAxiosError(error: unknown, status?: number) {
|
||||||
export * from './main';
|
export * from './main';
|
||||||
export * from './session';
|
export * from './session';
|
||||||
export * from './user';
|
export * from './user';
|
||||||
|
export * from './apiKeys';
|
||||||
|
|
Loading…
Reference in New Issue