Skip to content

Commit 5da0ec3

Browse files
authored
34 get all activities doesnt return response details if it fails (#35)
1 parent d78433b commit 5da0ec3

File tree

6 files changed

+68
-13
lines changed

6 files changed

+68
-13
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
],
66
"name": "@ofs-users/proxy",
77
"type": "module",
8-
"version": "1.14.0",
8+
"version": "1.15.0",
99
"description": "A Javascript proxy to access Oracle Field Service via REST API",
1010
"main": "dist/ofs.es.js",
1111
"module": "dist/ofs.es.js",

src/OFS.ts

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,42 @@ export class OFS {
112112
response.headers.get("Content-Type") || undefined
113113
);
114114
} else {
115-
return new OFSResponse(
116-
theURL,
117-
response.status,
118-
response.statusText,
119-
undefined
120-
);
115+
try {
116+
var data;
117+
if (
118+
response.headers
119+
.get("Content-Type")
120+
?.includes("json")
121+
) {
122+
data = await response.json();
123+
} else if (
124+
response.headers
125+
.get("Content-Type")
126+
?.includes("text")
127+
) {
128+
data = await response.text();
129+
} else {
130+
data = await response.blob();
131+
}
132+
return new OFSResponse(
133+
theURL,
134+
response.status,
135+
undefined,
136+
data,
137+
response.headers.get("Content-Type") || undefined
138+
);
139+
} catch (error) {
140+
console.log(
141+
"error trying to capture the response with status >400",
142+
error
143+
);
144+
return new OFSResponse(
145+
theURL,
146+
response.status,
147+
response.statusText,
148+
undefined
149+
);
150+
}
121151
}
122152
})
123153
.catch((error) => {
@@ -590,7 +620,13 @@ export class OFS {
590620
var offset = 0;
591621
var limit = 100;
592622
var result: any = undefined;
593-
var allResults: any = { status: 200, totalResults: 0, items: [] };
623+
var allResults: any = {
624+
status: 200,
625+
detail: "",
626+
title: "",
627+
totalResults: 0,
628+
items: [],
629+
};
594630
do {
595631
result = await this._get(partialURL, {
596632
...params,

test/general/core.activities.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,3 +351,19 @@ test("Get All Activities with all the parameters", async () => {
351351
expect(result.items.length).toBeGreaterThan(0);
352352
expect(result.items[0].activityId).toBeGreaterThan(0);
353353
});
354+
test("Get All Activities with incorrect data", async () => {
355+
var result = await myProxy.getAllActivities({
356+
resources: "FLUSA",
357+
dateFrom: "2024-02-01",
358+
dateTo: "2025-02-01",
359+
includeChildren: "all",
360+
includeNonScheduled: true,
361+
});
362+
if (result.status !== 200) {
363+
console.log(result);
364+
}
365+
expect(result.status).toBe(400);
366+
expect(result.data.detail).toContain(
367+
"Date interval contains more than 31 days"
368+
);
369+
});

test/general/meta.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import myCredentials from "../credentials_test.json";
88

99
import test_info from "../test_config.json";
1010
import { fa, faker } from "@faker-js/faker";
11-
1211
import type { Config } from "jest";
1312
import { defaults } from "jest-config";
1413

@@ -26,7 +25,11 @@ TEST_CONFIG.set("23.11", {
2625
numberOfResourceProperties: 34,
2726
numberOfTimeslots: 9,
2827
});
29-
28+
TEST_CONFIG.set("25A", {
29+
numberOfProperties: 464,
30+
numberOfResourceProperties: 45,
31+
numberOfTimeslots: 8,
32+
});
3033
// Setup info
3134
beforeAll(() => {
3235
myProxy = new OFS(myCredentials);

test/test_config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"ofsVersion": "23.11"
2+
"ofsVersion": "25A"
33
}

0 commit comments

Comments
 (0)