Skip to content

Commit ae1e81b

Browse files
Merge pull request #3 from Space48/replace-uuid-tracking
Replace tracking with publish checks
2 parents 4673272 + f3b4bd9 commit ae1e81b

File tree

2 files changed

+53
-5
lines changed

2 files changed

+53
-5
lines changed

src/services/api/widget.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { WidgetConfiguration } from '../schema/schemaParser/schemaParser';
66
export const widgetApi = {
77
widgetPreviewRender: `${AUTH_CONFIG.apiPath}/content/widget-templates/preview`,
88
widgetTemplatePublish: `${AUTH_CONFIG.apiPath}/content/widget-templates`,
9+
widgetTemplateList: `${AUTH_CONFIG.apiPath}/content/widget-templates`,
910
};
1011

1112
interface WidgetPreviewRenderResponse {
@@ -65,3 +66,52 @@ export const publishWidget = (
6566
.then(({ data: { data } }) => resolve(data))
6667
.catch(error => reject(error));
6768
});
69+
70+
export const getWidgetTemplate = (
71+
name: string
72+
): Promise<string> => new Promise((resolve, reject) =>
73+
getAllTemplates()
74+
.then((data) => {
75+
const match = data.find(
76+
template => name === template.name,
77+
);
78+
79+
resolve(match?.uuid || '');
80+
})
81+
.catch(error => reject(error)))
82+
83+
export interface WidgetTemplateResult {
84+
name: string;
85+
schema: any[];
86+
template: string;
87+
storefront_api_query: string;
88+
uuid: string;
89+
kind: string;
90+
date_created: string;
91+
date_modified: string;
92+
current_version_uuid: string;
93+
icon_name: string;
94+
}
95+
96+
const getAllTemplates = async (page: number = 1): Promise<WidgetTemplateResult[]> => {
97+
let listResults: WidgetTemplateResult[] = [];
98+
let done = false;
99+
100+
while (!done) {
101+
const { data } = (await Axios({
102+
headers: {
103+
Accept: 'application/json',
104+
'Content-Type': 'application/json',
105+
'X-Auth-Client': AUTH_CONFIG.authId,
106+
'X-Auth-Token': AUTH_CONFIG.authToken,
107+
},
108+
url: `${widgetApi.widgetTemplateList}?limit=250&page=${page}`,
109+
})).data;
110+
111+
done = data.length === 0;
112+
page++;
113+
listResults = listResults.concat(data);
114+
}
115+
116+
return listResults;
117+
}

src/services/widgetTemplate/publish.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { log, messages } from '../../messages';
22
import queryLoader from '../query/queryLoader/queryLoader';
33
import queryParamsLoader from '../query/queryParamsLoader/queryParamsLoader';
4-
import { publishWidget } from '../api/widget';
4+
import { publishWidget, getWidgetTemplate } from '../api/widget';
55
import WidgetFileType, { FileLoaderResponse } from '../../types';
66
import schemaLoader from '../schema/schemaLoader/schemaLoader';
77

88
import widgetTemplateLoader from './widgetTemplateLoader/widgetTemplateLoader';
99
import translationsLoader from '../translation/translationLoader/translationLoader';
10-
import track from './track';
1110

1211
interface CreateWidgetTemplateReq {
1312
name: string;
@@ -28,7 +27,7 @@ const widgetTemplatePayload = (widgetName: string): CreateWidgetTemplateReq => (
2827
});
2928

3029
const publishWidgetTemplate = async (widgetName: string, widgetTemplateDir: string) => {
31-
const widgetTemplateUuid = track.isTracked(widgetTemplateDir);
30+
const widgetTemplateUuid = await getWidgetTemplate(widgetName);
3231

3332
try {
3433
const widgetConfiguration = await Promise.all([
@@ -61,10 +60,9 @@ const publishWidgetTemplate = async (widgetName: string, widgetTemplateDir: stri
6160
}, widgetTemplatePayload(widgetName),
6261
));
6362

64-
const { uuid } = await publishWidget(widgetConfiguration, widgetTemplateUuid);
63+
await publishWidget(widgetConfiguration, widgetTemplateUuid);
6564

6665
if (!widgetTemplateUuid) {
67-
track.startTracking(widgetTemplateDir, uuid);
6866
log.success(messages.widgetRelease.success(widgetName));
6967
} else {
7068
log.success(`Successfully updated ${widgetName}`);

0 commit comments

Comments
 (0)