
* initial setup * GRaphql setup * [skip ci] * Manifest and register endpoints * Add config schemas * contentful client * contentful client * [skip ci] trpc setup * metadata manager and contentful router * Configuration config * contentful config - adding providers * add provider page * wip contentful form * contentful form * list providrs * edit contentful form * [skip ci] * [skip ci] replace contentful sdk * replace contentful lib * Delete contetnful provider feature * variant created webhook draft * channel provider connection model * Channel connections ui * adding new connection * connections ui (adding) * [skip ci] wip edit conn * removing connection * rebuild modal * refactor providers * implement update product webhook * add deleting product * [skip ci] wip * refactor contentful router * refactor wip * refactor config * webhooks processor * webhook delegations * bulk sync section * bulk sync page * gql for imports * [skip ci] bulk import contentful * temp variant sync list with rate limiters * wip * wip * wip * new frontend for uploading * update zod * print config keys * wip * [skip ci] datocms init * dato add provdier page * dato form skeleton * dato display content type select * full dato form * ButtonsBox extraction * edit dato config form * update product in dato * [skip ci] * extract bulk sync processor * dato bulk update * [skip ci] product updated webhook * product webhook * crud operations router * update cruds * refactor webhook operations * refactors * refactors * helper texts * [skip ci] deps * Init * fix macaw icon * unify app skd * unify nextjs * strapi setup * fix strapi types * strapi upload product * strapi delete product * strapi product updated webhook * processor for bulk sync strapi * shared add provider page * refactors * refactors * wrap providers into folder * refactors * refactors * refactors * pnpm lock * add logs * name configuration mapping name * form configurable side notes * remove commentns * wip providers resolver working * central config for providers resolving * tests wip * remove vscode condig * cleanup * provider meta extract * some tests for contentufl * contentful client test * more tests for contentful * strapi helper texts * builderio setup * builderio form * builderio client draft * validate connection modal * Add sending product to builderio * rename builder field * add public api key for read access * update products * Builder.io - bulk sync * Fix manifest * cr fixes * Make strapi to work with multiple products * Github actions
36 lines
1,023 B
TypeScript
36 lines
1,023 B
TypeScript
import { SettingsManager } from "@saleor/app-sdk/settings-manager";
|
|
import { AppConfig } from "./app-config";
|
|
import { createSettingsManager } from "./metadata-manager";
|
|
import { createGraphQLClient } from "@saleor/apps-shared";
|
|
import { AuthData } from "@saleor/app-sdk/APL";
|
|
|
|
export class AppConfigMetadataManager {
|
|
public readonly metadataKey = "app-config-v1";
|
|
|
|
constructor(private mm: SettingsManager) {}
|
|
|
|
async get() {
|
|
const metadata = await this.mm.get(this.metadataKey);
|
|
|
|
return metadata ? AppConfig.parse(metadata) : new AppConfig();
|
|
}
|
|
|
|
set(config: AppConfig) {
|
|
return this.mm.set({
|
|
key: this.metadataKey,
|
|
value: config.serialize(),
|
|
});
|
|
}
|
|
|
|
static createFromAuthData(authData: AuthData): AppConfigMetadataManager {
|
|
const settingsManager = createSettingsManager(
|
|
createGraphQLClient({
|
|
saleorApiUrl: authData.saleorApiUrl,
|
|
token: authData.token,
|
|
}),
|
|
authData.appId
|
|
);
|
|
|
|
return new AppConfigMetadataManager(settingsManager);
|
|
}
|
|
}
|