dummy-payment-server/deno-apl.ts

54 lines
1 KiB
TypeScript
Raw Normal View History

2023-08-18 11:44:07 +00:00
import {
APL,
AuthData,
AplReadyResult,
AplConfiguredResult,
} from "saleor-app-sdk/APL";
2023-08-18 11:44:07 +00:00
const kv = await Deno.openKv();
const KV_KEY = "authData";
export class DenoAPL implements APL {
async get(saleorApiUrl: string) {
const authData = await kv.get<AuthData>([KV_KEY, saleorApiUrl]);
if (authData.value) {
return authData.value;
}
}
async set(authData: AuthData) {
await kv.set([KV_KEY, authData.saleorApiUrl], authData);
}
async delete(saleorApiUrl: string) {
return await kv.delete([KV_KEY, saleorApiUrl]);
}
async getAll() {
const list = kv.list<AuthData>({ prefix: [KV_KEY] });
const authDataList: AuthData[] = [];
for await (const res of list) {
authDataList.push(res.value);
}
return authDataList;
}
2023-08-18 12:49:32 +00:00
// deno-lint-ignore require-await
2023-08-18 11:44:07 +00:00
async isReady(): Promise<AplReadyResult> {
return {
ready: true,
};
}
2023-08-18 12:49:32 +00:00
// deno-lint-ignore require-await
2023-08-18 11:44:07 +00:00
async isConfigured(): Promise<AplConfiguredResult> {
return {
configured: true,
};
}
}