@builder.io/plugin-commercelayer 0.0.9-2 → 0.0.9-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -146881,7 +146881,7 @@ System.register(['@builder.io/sdk', '@emotion/core', '@material-ui/core', 'react
146881
146881
  });
146882
146882
 
146883
146883
  var name = "@builder.io/plugin-commercelayer";
146884
- var version = "0.0.9-1";
146884
+ var version = "0.0.9-2";
146885
146885
  var description = "Commerce Layer plugin for Builder.io";
146886
146886
  var keywords = [
146887
146887
  ];
@@ -147056,6 +147056,104 @@ System.register(['@builder.io/sdk', '@emotion/core', '@material-ui/core', 'react
147056
147056
  return data.data[0];
147057
147057
  };
147058
147058
 
147059
+ const buildCommerceLayerUrl = ({
147060
+ resource,
147061
+ resourceId,
147062
+ query,
147063
+ limit,
147064
+ baseEndpoint,
147065
+ token
147066
+ }) => {
147067
+ let url;
147068
+ if (resourceId) {
147069
+ url = `${baseEndpoint}/api/skus/${resourceId}`;
147070
+ } else {
147071
+ const params = new URLSearchParams();
147072
+ if (query) {
147073
+ params.set("filter[q][name_or_code_cont]", query);
147074
+ }
147075
+ params.set("page[size]", (limit || 25).toString());
147076
+ url = `${baseEndpoint}/api/skus?${params}`;
147077
+ }
147078
+ return {
147079
+ "@type": "@builder.io/core:Request",
147080
+ request: {
147081
+ url,
147082
+ method: "GET",
147083
+ headers: {
147084
+ "Authorization": `Bearer ${token}`,
147085
+ "Accept": "application/vnd.api+json",
147086
+ "Content-Type": "application/vnd.api+json"
147087
+ }
147088
+ },
147089
+ options: {
147090
+ resource,
147091
+ resourceId,
147092
+ pluginId: pkg.name
147093
+ }
147094
+ };
147095
+ };
147096
+ const RESOURCE_TYPES = [
147097
+ {
147098
+ name: "Product",
147099
+ id: "product",
147100
+ description: "All of your Commerce Layer products (SKUs)."
147101
+ }
147102
+ ];
147103
+ const getDataConfig = (service, baseEndpoint, token) => {
147104
+ return {
147105
+ name: "CommerceLayer",
147106
+ icon: "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F9893958430eb4c59af7ab616ba868941",
147107
+ getResourceTypes: async () => RESOURCE_TYPES.map(
147108
+ (model) => ({
147109
+ ...model,
147110
+ inputs: () => [
147111
+ {
147112
+ friendlyName: "Limit",
147113
+ name: "limit",
147114
+ type: "number",
147115
+ defaultValue: 25,
147116
+ max: 100,
147117
+ min: 1
147118
+ },
147119
+ {
147120
+ friendlyName: "Search",
147121
+ name: "query",
147122
+ type: "string",
147123
+ helperText: "Search by product name or SKU code"
147124
+ }
147125
+ ],
147126
+ toUrl: ({ entry, query, limit }) => buildCommerceLayerUrl({
147127
+ query,
147128
+ limit,
147129
+ resource: model.id,
147130
+ resourceId: entry,
147131
+ baseEndpoint,
147132
+ token
147133
+ }),
147134
+ canPickEntries: true
147135
+ })
147136
+ ),
147137
+ getEntriesByResourceType: async (resourceTypeId, options = {}) => {
147138
+ const entry = options.resourceEntryId;
147139
+ if (entry) {
147140
+ const entryObj = await service[resourceTypeId].findById(entry);
147141
+ return [
147142
+ {
147143
+ id: String(entryObj.id),
147144
+ name: entryObj.title
147145
+ }
147146
+ ];
147147
+ }
147148
+ const response = await service[resourceTypeId].search(options.searchText || "");
147149
+ return response.map((result) => ({
147150
+ id: String(result.id),
147151
+ name: result.title
147152
+ }));
147153
+ }
147154
+ };
147155
+ };
147156
+
147059
147157
  registerCommercePlugin(
147060
147158
  {
147061
147159
  name: "CommerceLayer",
@@ -147089,7 +147187,7 @@ System.register(['@builder.io/sdk', '@emotion/core', '@material-ui/core', 'react
147089
147187
  const scope = settings.get("scope");
147090
147188
  const auth = await authenticateClient({ clientId, clientSecret, scope });
147091
147189
  const { baseEndpoint } = await getOrganizationInfo(auth.accessToken);
147092
- return {
147190
+ const service = {
147093
147191
  product: {
147094
147192
  async findById(id) {
147095
147193
  const token = await getValidToken(clientId, clientSecret, scope);
@@ -147125,6 +147223,8 @@ System.register(['@builder.io/sdk', '@emotion/core', '@material-ui/core', 'react
147125
147223
  }
147126
147224
  }
147127
147225
  };
147226
+ appState.registerDataPlugin(getDataConfig(service, baseEndpoint, auth.accessToken));
147227
+ return service;
147128
147228
  } catch (error) {
147129
147229
  console.error(error);
147130
147230
  appState.snackBar.show(