@b-jones-rfd/qualtrics-api-tasks 0.1.1 → 0.2.0
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.
- package/CHANGELOG.md +6 -0
- package/dist/index.js +15 -11
- package/dist/index.mjs +15 -11
- package/package.json +1 -1
- package/tests/utils.test.ts +0 -19
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -133,9 +133,6 @@ function safeParseStartFileExportResponse(response) {
|
|
|
133
133
|
function safeParseFileProgressResponse(response) {
|
|
134
134
|
return "result" in response ? "fileId" in response.result && "percentComplete" in response.result && "status" in response.result ? success(response.result) : failure("File Progress Response invalid format") : "error" in response ? failure(`${response.error.errorCode}: ${response.error.errorMessage}`) : failure(`Unable to parse File Progress Response`);
|
|
135
135
|
}
|
|
136
|
-
function safeParseFileResponse(response) {
|
|
137
|
-
return Buffer.isBuffer(response) ? success(response) : failure("Incorrect file response format");
|
|
138
|
-
}
|
|
139
136
|
|
|
140
137
|
// src/qualtrics/index.ts
|
|
141
138
|
async function execute(config) {
|
|
@@ -151,7 +148,6 @@ async function execute(config) {
|
|
|
151
148
|
if (body) {
|
|
152
149
|
if (typeof body === "string") {
|
|
153
150
|
headers.append("Content-Type", "application/json");
|
|
154
|
-
headers.append("Accept", "application/json");
|
|
155
151
|
}
|
|
156
152
|
options.method = "POST";
|
|
157
153
|
options.headers = headers;
|
|
@@ -161,8 +157,17 @@ async function execute(config) {
|
|
|
161
157
|
const response = await fetch(resource, options);
|
|
162
158
|
clearTimeout(timer);
|
|
163
159
|
if (response.ok) {
|
|
164
|
-
const
|
|
165
|
-
|
|
160
|
+
const contentType = response.headers.get("content-type");
|
|
161
|
+
switch (contentType) {
|
|
162
|
+
case "application/json":
|
|
163
|
+
return Promise.resolve(await response.json());
|
|
164
|
+
case "application/csv":
|
|
165
|
+
case "application/tsv":
|
|
166
|
+
case "application/xml":
|
|
167
|
+
return Promise.resolve(await response.text());
|
|
168
|
+
default:
|
|
169
|
+
return Promise.resolve(response.body);
|
|
170
|
+
}
|
|
166
171
|
} else {
|
|
167
172
|
const message = await response.json();
|
|
168
173
|
return Promise.reject(`${response.status}: ${message}`);
|
|
@@ -197,7 +202,7 @@ var getBearerToken = (connectionOptions) => async ({ clientId, clientSecret, sco
|
|
|
197
202
|
|
|
198
203
|
// src/methods/getResponseExportProgress.ts
|
|
199
204
|
var getResponseExportProgress = (connectionOptions) => async ({ exportProgressId, surveyId, bearerToken }) => {
|
|
200
|
-
const route = `/surveys/${surveyId}/export-responses/${exportProgressId}`;
|
|
205
|
+
const route = `/API/v3/surveys/${surveyId}/export-responses/${exportProgressId}`;
|
|
201
206
|
try {
|
|
202
207
|
const headers = getAuthHeaders(connectionOptions.apiToken, bearerToken);
|
|
203
208
|
const config = {
|
|
@@ -217,7 +222,7 @@ var getResponseExportProgress = (connectionOptions) => async ({ exportProgressId
|
|
|
217
222
|
|
|
218
223
|
// src/methods/getResponseExportFile.ts
|
|
219
224
|
var getResponseExportFile = (connectionOptions) => async ({ surveyId, fileId, bearerToken }) => {
|
|
220
|
-
const route = `/surveys/${surveyId}/export-responses/${fileId}/file`;
|
|
225
|
+
const route = `/API/v3/surveys/${surveyId}/export-responses/${fileId}/file`;
|
|
221
226
|
try {
|
|
222
227
|
const headers = getAuthHeaders(connectionOptions.apiToken, bearerToken);
|
|
223
228
|
const config = {
|
|
@@ -227,8 +232,7 @@ var getResponseExportFile = (connectionOptions) => async ({ surveyId, fileId, be
|
|
|
227
232
|
timeout: connectionOptions.timeout
|
|
228
233
|
};
|
|
229
234
|
const response = await execute(config);
|
|
230
|
-
|
|
231
|
-
return result;
|
|
235
|
+
return response;
|
|
232
236
|
} catch (error) {
|
|
233
237
|
const message = getErrorMessage(error);
|
|
234
238
|
return failure(message);
|
|
@@ -244,7 +248,7 @@ var startResponseExport = (connectionOptions) => async ({
|
|
|
244
248
|
bearerToken = void 0,
|
|
245
249
|
...rest
|
|
246
250
|
}) => {
|
|
247
|
-
const route = `/surveys/${surveyId}/export-responses`;
|
|
251
|
+
const route = `/API/v3/surveys/${surveyId}/export-responses`;
|
|
248
252
|
try {
|
|
249
253
|
const headers = getAuthHeaders(connectionOptions.apiToken, bearerToken);
|
|
250
254
|
const body = JSON.stringify({
|
package/dist/index.mjs
CHANGED
|
@@ -101,9 +101,6 @@ function safeParseStartFileExportResponse(response) {
|
|
|
101
101
|
function safeParseFileProgressResponse(response) {
|
|
102
102
|
return "result" in response ? "fileId" in response.result && "percentComplete" in response.result && "status" in response.result ? success(response.result) : failure("File Progress Response invalid format") : "error" in response ? failure(`${response.error.errorCode}: ${response.error.errorMessage}`) : failure(`Unable to parse File Progress Response`);
|
|
103
103
|
}
|
|
104
|
-
function safeParseFileResponse(response) {
|
|
105
|
-
return Buffer.isBuffer(response) ? success(response) : failure("Incorrect file response format");
|
|
106
|
-
}
|
|
107
104
|
|
|
108
105
|
// src/qualtrics/index.ts
|
|
109
106
|
async function execute(config) {
|
|
@@ -119,7 +116,6 @@ async function execute(config) {
|
|
|
119
116
|
if (body) {
|
|
120
117
|
if (typeof body === "string") {
|
|
121
118
|
headers.append("Content-Type", "application/json");
|
|
122
|
-
headers.append("Accept", "application/json");
|
|
123
119
|
}
|
|
124
120
|
options.method = "POST";
|
|
125
121
|
options.headers = headers;
|
|
@@ -129,8 +125,17 @@ async function execute(config) {
|
|
|
129
125
|
const response = await fetch(resource, options);
|
|
130
126
|
clearTimeout(timer);
|
|
131
127
|
if (response.ok) {
|
|
132
|
-
const
|
|
133
|
-
|
|
128
|
+
const contentType = response.headers.get("content-type");
|
|
129
|
+
switch (contentType) {
|
|
130
|
+
case "application/json":
|
|
131
|
+
return Promise.resolve(await response.json());
|
|
132
|
+
case "application/csv":
|
|
133
|
+
case "application/tsv":
|
|
134
|
+
case "application/xml":
|
|
135
|
+
return Promise.resolve(await response.text());
|
|
136
|
+
default:
|
|
137
|
+
return Promise.resolve(response.body);
|
|
138
|
+
}
|
|
134
139
|
} else {
|
|
135
140
|
const message = await response.json();
|
|
136
141
|
return Promise.reject(`${response.status}: ${message}`);
|
|
@@ -165,7 +170,7 @@ var getBearerToken = (connectionOptions) => async ({ clientId, clientSecret, sco
|
|
|
165
170
|
|
|
166
171
|
// src/methods/getResponseExportProgress.ts
|
|
167
172
|
var getResponseExportProgress = (connectionOptions) => async ({ exportProgressId, surveyId, bearerToken }) => {
|
|
168
|
-
const route = `/surveys/${surveyId}/export-responses/${exportProgressId}`;
|
|
173
|
+
const route = `/API/v3/surveys/${surveyId}/export-responses/${exportProgressId}`;
|
|
169
174
|
try {
|
|
170
175
|
const headers = getAuthHeaders(connectionOptions.apiToken, bearerToken);
|
|
171
176
|
const config = {
|
|
@@ -185,7 +190,7 @@ var getResponseExportProgress = (connectionOptions) => async ({ exportProgressId
|
|
|
185
190
|
|
|
186
191
|
// src/methods/getResponseExportFile.ts
|
|
187
192
|
var getResponseExportFile = (connectionOptions) => async ({ surveyId, fileId, bearerToken }) => {
|
|
188
|
-
const route = `/surveys/${surveyId}/export-responses/${fileId}/file`;
|
|
193
|
+
const route = `/API/v3/surveys/${surveyId}/export-responses/${fileId}/file`;
|
|
189
194
|
try {
|
|
190
195
|
const headers = getAuthHeaders(connectionOptions.apiToken, bearerToken);
|
|
191
196
|
const config = {
|
|
@@ -195,8 +200,7 @@ var getResponseExportFile = (connectionOptions) => async ({ surveyId, fileId, be
|
|
|
195
200
|
timeout: connectionOptions.timeout
|
|
196
201
|
};
|
|
197
202
|
const response = await execute(config);
|
|
198
|
-
|
|
199
|
-
return result;
|
|
203
|
+
return response;
|
|
200
204
|
} catch (error) {
|
|
201
205
|
const message = getErrorMessage(error);
|
|
202
206
|
return failure(message);
|
|
@@ -212,7 +216,7 @@ var startResponseExport = (connectionOptions) => async ({
|
|
|
212
216
|
bearerToken = void 0,
|
|
213
217
|
...rest
|
|
214
218
|
}) => {
|
|
215
|
-
const route = `/surveys/${surveyId}/export-responses`;
|
|
219
|
+
const route = `/API/v3/surveys/${surveyId}/export-responses`;
|
|
216
220
|
try {
|
|
217
221
|
const headers = getAuthHeaders(connectionOptions.apiToken, bearerToken);
|
|
218
222
|
const body = JSON.stringify({
|
package/package.json
CHANGED
package/tests/utils.test.ts
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
safeParseTestResponse,
|
|
6
6
|
safeParseStartFileExportResponse,
|
|
7
7
|
safeParseFileProgressResponse,
|
|
8
|
-
safeParseFileResponse,
|
|
9
8
|
} from '../src/utils/parsers'
|
|
10
9
|
|
|
11
10
|
describe('safeParseBearerToken', () => {
|
|
@@ -140,21 +139,3 @@ describe('safeParseTestResponse', () => {
|
|
|
140
139
|
expect(parsed).toStrictEqual(expected)
|
|
141
140
|
})
|
|
142
141
|
})
|
|
143
|
-
|
|
144
|
-
describe('safeParseFileResponse', () => {
|
|
145
|
-
const fixture = Buffer.from('file content')
|
|
146
|
-
|
|
147
|
-
it('should pass with correct data', () => {
|
|
148
|
-
const res = fixture
|
|
149
|
-
const expected = success(fixture)
|
|
150
|
-
const parsed = safeParseFileResponse(res)
|
|
151
|
-
expect(parsed).toStrictEqual(expected)
|
|
152
|
-
})
|
|
153
|
-
|
|
154
|
-
it('should fail with invalid response type', () => {
|
|
155
|
-
const res = { fixture }
|
|
156
|
-
const expected = failure('Incorrect file response format')
|
|
157
|
-
const parsed = safeParseFileResponse(res)
|
|
158
|
-
expect(parsed).toStrictEqual(expected)
|
|
159
|
-
})
|
|
160
|
-
})
|