@balena/pinejs 17.1.0-build-joshbwlng-tasks-0c116dc98102e3ddd4aa6e8a4f350a1e18891e1a-1 → 17.1.0-build-joshbwlng-tasks-61ce10e444abec6afea3fec43e9a5c37c7cedea6-1
Sign up to get free protection for your applications and to get access to all the features.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +14 -2
- package/CHANGELOG.md +6 -1
- package/out/sbvr-api/hooks.d.ts +7 -7
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/odata-response.d.ts +2 -1
- package/out/sbvr-api/odata-response.js +4 -4
- package/out/sbvr-api/odata-response.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.js +32 -29
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/package.json +2 -2
- package/src/sbvr-api/hooks.ts +5 -3
- package/src/sbvr-api/odata-response.ts +13 -3
- package/src/sbvr-api/sbvr-utils.ts +39 -40
@@ -1546,7 +1546,8 @@ const runRequest = async (
|
|
1546
1546
|
if (env.DEBUG) {
|
1547
1547
|
log.log('Running', req.method, req.url);
|
1548
1548
|
}
|
1549
|
-
let
|
1549
|
+
let resultGet: Db.Result | undefined;
|
1550
|
+
let resultPost: number | undefined;
|
1550
1551
|
|
1551
1552
|
try {
|
1552
1553
|
try {
|
@@ -1555,18 +1556,18 @@ const runRequest = async (
|
|
1555
1556
|
|
1556
1557
|
switch (request.method) {
|
1557
1558
|
case 'GET':
|
1558
|
-
|
1559
|
+
resultGet = await runGet(req, request, tx);
|
1559
1560
|
break;
|
1560
1561
|
case 'POST':
|
1561
|
-
|
1562
|
+
resultPost = await runPost(req, request, tx);
|
1562
1563
|
break;
|
1563
1564
|
case 'PUT':
|
1564
1565
|
case 'PATCH':
|
1565
1566
|
case 'MERGE':
|
1566
|
-
|
1567
|
+
await runPut(req, request, tx);
|
1567
1568
|
break;
|
1568
1569
|
case 'DELETE':
|
1569
|
-
|
1570
|
+
await runDelete(req, request, tx);
|
1570
1571
|
break;
|
1571
1572
|
}
|
1572
1573
|
} catch (err: any) {
|
@@ -1592,7 +1593,12 @@ const runRequest = async (
|
|
1592
1593
|
throw err;
|
1593
1594
|
}
|
1594
1595
|
|
1595
|
-
await runHooks('POSTRUN', request.hooks, {
|
1596
|
+
await runHooks('POSTRUN', request.hooks, {
|
1597
|
+
req,
|
1598
|
+
request,
|
1599
|
+
result: resultGet ?? resultPost,
|
1600
|
+
tx,
|
1601
|
+
});
|
1596
1602
|
} catch (err: any) {
|
1597
1603
|
await runHooks('POSTRUN-ERROR', request.hooks, {
|
1598
1604
|
req,
|
@@ -1602,7 +1608,23 @@ const runRequest = async (
|
|
1602
1608
|
});
|
1603
1609
|
throw err;
|
1604
1610
|
}
|
1605
|
-
|
1611
|
+
|
1612
|
+
switch (request.method) {
|
1613
|
+
case 'GET':
|
1614
|
+
return await respondGet(req, request, resultGet, tx);
|
1615
|
+
case 'POST':
|
1616
|
+
return await respondPost(req, request, resultPost, tx);
|
1617
|
+
case 'PUT':
|
1618
|
+
case 'PATCH':
|
1619
|
+
case 'MERGE':
|
1620
|
+
return await respondPut(req, request, tx);
|
1621
|
+
case 'DELETE':
|
1622
|
+
return await respondDelete(req, request, tx);
|
1623
|
+
case 'OPTIONS':
|
1624
|
+
return await respondOptions(req, request, tx);
|
1625
|
+
default:
|
1626
|
+
throw new MethodNotAllowedError();
|
1627
|
+
}
|
1606
1628
|
};
|
1607
1629
|
|
1608
1630
|
const runChangeSet =
|
@@ -1650,30 +1672,6 @@ const updateBinds = (
|
|
1650
1672
|
return request;
|
1651
1673
|
};
|
1652
1674
|
|
1653
|
-
const prepareResponse = async (
|
1654
|
-
req: Express.Request,
|
1655
|
-
request: uriParser.ODataRequest,
|
1656
|
-
result: any,
|
1657
|
-
tx: Db.Tx,
|
1658
|
-
): Promise<Response> => {
|
1659
|
-
switch (request.method) {
|
1660
|
-
case 'GET':
|
1661
|
-
return await respondGet(req, request, result, tx);
|
1662
|
-
case 'POST':
|
1663
|
-
return await respondPost(req, request, result, tx);
|
1664
|
-
case 'PUT':
|
1665
|
-
case 'PATCH':
|
1666
|
-
case 'MERGE':
|
1667
|
-
return await respondPut(req, request, result, tx);
|
1668
|
-
case 'DELETE':
|
1669
|
-
return await respondDelete(req, request, result, tx);
|
1670
|
-
case 'OPTIONS':
|
1671
|
-
return await respondOptions(req, request, result, tx);
|
1672
|
-
default:
|
1673
|
-
throw new MethodNotAllowedError();
|
1674
|
-
}
|
1675
|
-
};
|
1676
|
-
|
1677
1675
|
const checkReadOnlyRequests = (request: uriParser.ODataRequest) => {
|
1678
1676
|
if (request.method !== 'GET') {
|
1679
1677
|
// Only GET requests can be read-only
|
@@ -1775,11 +1773,17 @@ const runGet = async (
|
|
1775
1773
|
const respondGet = async (
|
1776
1774
|
req: Express.Request,
|
1777
1775
|
request: uriParser.ODataRequest,
|
1778
|
-
result:
|
1776
|
+
result: Db.Result | undefined,
|
1779
1777
|
tx: Db.Tx,
|
1780
1778
|
): Promise<Response> => {
|
1781
1779
|
const vocab = request.vocabulary;
|
1782
1780
|
if (request.sqlQuery != null) {
|
1781
|
+
if (result == null) {
|
1782
|
+
// This shouldn't be able to happen because the result should only be null if there's no sqlQuery
|
1783
|
+
throw new Error(
|
1784
|
+
'Null result passed to respond GET that has a sqlQuery defined',
|
1785
|
+
);
|
1786
|
+
}
|
1783
1787
|
const format = request.odataQuery.options?.$format;
|
1784
1788
|
const metadata =
|
1785
1789
|
format != null && typeof format === 'object'
|
@@ -1844,7 +1848,7 @@ const runPost = async (
|
|
1844
1848
|
const respondPost = async (
|
1845
1849
|
req: Express.Request,
|
1846
1850
|
request: uriParser.ODataRequest,
|
1847
|
-
id: number,
|
1851
|
+
id: number | undefined,
|
1848
1852
|
tx: Db.Tx,
|
1849
1853
|
): Promise<Response> => {
|
1850
1854
|
const vocab = request.vocabulary;
|
@@ -1894,7 +1898,7 @@ const runPut = async (
|
|
1894
1898
|
_req: Express.Request,
|
1895
1899
|
request: uriParser.ODataRequest,
|
1896
1900
|
tx: Db.Tx,
|
1897
|
-
): Promise<
|
1901
|
+
): Promise<void> => {
|
1898
1902
|
let rowsAffected: number;
|
1899
1903
|
// If request.sqlQuery is an array it means it's an UPSERT, ie two queries: [InsertQuery, UpdateQuery]
|
1900
1904
|
if (Array.isArray(request.sqlQuery)) {
|
@@ -1910,13 +1914,11 @@ const runPut = async (
|
|
1910
1914
|
if (rowsAffected > 0) {
|
1911
1915
|
await validateModel(tx, _.last(request.translateVersions)!, request);
|
1912
1916
|
}
|
1913
|
-
return undefined;
|
1914
1917
|
};
|
1915
1918
|
|
1916
1919
|
const respondPut = async (
|
1917
1920
|
req: Express.Request,
|
1918
1921
|
request: uriParser.ODataRequest,
|
1919
|
-
result: any,
|
1920
1922
|
tx: Db.Tx,
|
1921
1923
|
): Promise<Response> => {
|
1922
1924
|
const response = {
|
@@ -1925,7 +1927,6 @@ const respondPut = async (
|
|
1925
1927
|
await runHooks('PRERESPOND', request.hooks, {
|
1926
1928
|
req,
|
1927
1929
|
request,
|
1928
|
-
result,
|
1929
1930
|
response,
|
1930
1931
|
tx,
|
1931
1932
|
});
|
@@ -1938,13 +1939,11 @@ const runDelete = async (
|
|
1938
1939
|
_req: Express.Request,
|
1939
1940
|
request: uriParser.ODataRequest,
|
1940
1941
|
tx: Db.Tx,
|
1941
|
-
): Promise<
|
1942
|
+
): Promise<void> => {
|
1942
1943
|
const { rowsAffected } = await runQuery(tx, request, undefined, true);
|
1943
1944
|
if (rowsAffected > 0) {
|
1944
1945
|
await validateModel(tx, _.last(request.translateVersions)!, request);
|
1945
1946
|
}
|
1946
|
-
|
1947
|
-
return undefined;
|
1948
1947
|
};
|
1949
1948
|
|
1950
1949
|
export const executeStandardModels = async (tx: Db.Tx): Promise<void> => {
|