@sap-ux/axios-extension 0.12.0 → 0.13.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/README.adoc CHANGED
@@ -65,7 +65,11 @@ const provider = createForAbap({
65
65
  params: { 'sap-client': client }
66
66
  });
67
67
  const transportRequestSerivce = provider.getAdtService<TransportRequestService>(TransportRequestService);
68
- const newTrNumber = await transportRequestSerivce.createTransportRequest('A new transport request number for deployment');
68
+ const newTrNumber = await transportRequestSerivce.createTransportRequest({
69
+ packageName: 'Z_PACKAGE',
70
+ ui5AppName: 'zappname',
71
+ description: 'A new transport request number for deployment'
72
+ });
69
73
  ```
70
74
  #### ADT Service Implementation
71
75
  Supported ADT services are implemented in link:./src/abap/adt-catalog/services[src/abap/adt-catalog/services].
@@ -1,5 +1,5 @@
1
1
  export { AdtService } from './adt-service';
2
2
  export { AtoService } from './ato-service';
3
3
  export { TransportChecksService } from './transportcheck-service';
4
- export { TransportRequestService } from './transportrequest-service';
4
+ export { TransportRequestService, NewUi5ObjectRequestParams } from './transportrequest-service';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -2,7 +2,7 @@ import { AdtService } from './adt-service';
2
2
  import type { AdtCategory, TransportRequest } from '../../types';
3
3
  /**
4
4
  * TransportChecksService implements ADT requests for fetching a list of available transport requests
5
- * for a given package name and a give app name.
5
+ * for a given package name and a given app name.
6
6
  */
7
7
  export declare class TransportChecksService extends AdtService {
8
8
  /**
@@ -15,6 +15,7 @@ export declare class TransportChecksService extends AdtService {
15
15
  */
16
16
  static getAdtCatagory(): AdtCategory;
17
17
  /**
18
+ * TransportChecksService API function to fetch a list of available transport requests.
18
19
  *
19
20
  * @param packageName Package name for deployment
20
21
  * @param appName Fiori project name for deployment. A new project that has not been deployed before is also allowed
@@ -39,7 +39,7 @@ const xpath = __importStar(require("xpath"));
39
39
  const xmldom_1 = require("@xmldom/xmldom");
40
40
  /**
41
41
  * TransportChecksService implements ADT requests for fetching a list of available transport requests
42
- * for a given package name and a give app name.
42
+ * for a given package name and a given app name.
43
43
  */
44
44
  class TransportChecksService extends adt_service_1.AdtService {
45
45
  /**
@@ -50,6 +50,7 @@ class TransportChecksService extends adt_service_1.AdtService {
50
50
  return TransportChecksService.AdtCategory;
51
51
  }
52
52
  /**
53
+ * TransportChecksService API function to fetch a list of available transport requests.
53
54
  *
54
55
  * @param packageName Package name for deployment
55
56
  * @param appName Fiori project name for deployment. A new project that has not been deployed before is also allowed
@@ -1,5 +1,23 @@
1
1
  import { AdtService } from './adt-service';
2
2
  import type { AdtCategory } from '../../types';
3
+ /**
4
+ * Input parameter for creating a new transport request for an UI5 app object.
5
+ */
6
+ export interface NewUi5ObjectRequestParams {
7
+ /**
8
+ * A valid package name is required to create a new transport request
9
+ */
10
+ packageName: string;
11
+ /**
12
+ * Name of a Fiori UI5 app to be deployed.
13
+ * It is acceptable to use a new app name that does not exist.
14
+ */
15
+ ui5AppName: string;
16
+ /**
17
+ * Description of the new transport request to be created
18
+ */
19
+ description: string;
20
+ }
3
21
  /**
4
22
  * TransportRequestService implements ADT requests for creating a new transport request number
5
23
  * that can be used for deploying Fiori project to ABAP backend.
@@ -15,15 +33,16 @@ export declare class TransportRequestService extends AdtService {
15
33
  */
16
34
  static getAdtCatagory(): AdtCategory;
17
35
  /**
36
+ * TransportRequestService API function to create a new transport number.
18
37
  *
19
- * @param description Description of the new transport request to be created
38
+ * @param reqParam Request parameter for creating a new transport request for an UI5 app object.
20
39
  * @returns Newly created transport request number
21
40
  */
22
- createTransportRequest(description: string): Promise<string>;
41
+ createTransportRequest(reqParam: NewUi5ObjectRequestParams): Promise<string>;
23
42
  /**
24
43
  * Read the newly created transport number from response XML data.
25
44
  *
26
- * @param xml XML response of create transport request.
45
+ * @param text XML response of create transport request.
27
46
  * @returns Newly created transport number or null
28
47
  */
29
48
  private getTransportNumberFromResponse;
@@ -1,23 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,15 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
28
9
  });
29
10
  };
30
- var __importDefault = (this && this.__importDefault) || function (mod) {
31
- return (mod && mod.__esModule) ? mod : { "default": mod };
32
- };
33
11
  Object.defineProperty(exports, "__esModule", { value: true });
34
12
  exports.TransportRequestService = void 0;
35
13
  const adt_service_1 = require("./adt-service");
36
- const fast_xml_parser_1 = __importDefault(require("fast-xml-parser"));
37
- const xpath = __importStar(require("xpath"));
38
- const xmldom_1 = require("@xmldom/xmldom");
39
14
  /**
40
15
  * TransportRequestService implements ADT requests for creating a new transport request number
41
16
  * that can be used for deploying Fiori project to ABAP backend.
@@ -49,24 +24,31 @@ class TransportRequestService extends adt_service_1.AdtService {
49
24
  return TransportRequestService.AdtCategory;
50
25
  }
51
26
  /**
27
+ * TransportRequestService API function to create a new transport number.
52
28
  *
53
- * @param description Description of the new transport request to be created
29
+ * @param reqParam Request parameter for creating a new transport request for an UI5 app object.
54
30
  * @returns Newly created transport request number
55
31
  */
56
- createTransportRequest(description) {
32
+ createTransportRequest(reqParam) {
57
33
  return __awaiter(this, void 0, void 0, function* () {
58
34
  const acceptHeaders = {
59
35
  headers: {
60
- Accept: 'application/vnd.sap.adt.transportorganizer.v1+xml',
61
- 'content-type': 'text/plain'
36
+ Accept: 'text/plain',
37
+ 'content-type': 'application/vnd.sap.as+xml; charset=UTF-8; dataname=com.sap.adt.CreateCorrectionRequest'
62
38
  }
63
39
  };
64
40
  const data = `
65
- <?xml version="1.0" encoding="ASCII"?>
66
- <tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:useraction="newrequest">
67
- <tm:request tm:desc="${description}" tm:type="K" tm:target="LOCAL" tm:cts_project="">
68
- </tm:request>
69
- </tm:root>
41
+ <?xml version="1.0" encoding="UTF-8"?>
42
+ <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
43
+ <asx:values>
44
+ <DATA>
45
+ <OPERATION>I</OPERATION>
46
+ <DEVCLASS>${reqParam.packageName}</DEVCLASS>
47
+ <REQUEST_TEXT>${reqParam.description}</REQUEST_TEXT>
48
+ <REF>/sap/bc/adt/filestore/ui5-bsp/objects/${reqParam.ui5AppName}/$create</REF>
49
+ </DATA>
50
+ </asx:values>
51
+ </asx:abap>
70
52
  `;
71
53
  const response = yield this.post('', data, acceptHeaders);
72
54
  return this.getTransportNumberFromResponse(response.data);
@@ -75,23 +57,17 @@ class TransportRequestService extends adt_service_1.AdtService {
75
57
  /**
76
58
  * Read the newly created transport number from response XML data.
77
59
  *
78
- * @param xml XML response of create transport request.
60
+ * @param text XML response of create transport request.
79
61
  * @returns Newly created transport number or null
80
62
  */
81
- getTransportNumberFromResponse(xml) {
82
- if (fast_xml_parser_1.default.validate(xml) !== true) {
83
- this.log.warn(`Invalid XML: ${xml}`);
84
- return '';
85
- }
86
- const doc = new xmldom_1.DOMParser().parseFromString(xml);
87
- const select = xpath.useNamespaces({ 'tm': 'http://www.sap.com/cts/adt/tm' });
88
- const attrElement = select('//tm:request/@tm:number', doc);
89
- if (attrElement && attrElement.length === 1) {
90
- const createdTransportNumber = attrElement[0].nodeValue;
91
- return createdTransportNumber;
63
+ getTransportNumberFromResponse(text) {
64
+ const responseStringPrefix = '/com.sap.cts/object_record/';
65
+ if (!text || !text.startsWith(responseStringPrefix)) {
66
+ return null;
92
67
  }
93
68
  else {
94
- return null;
69
+ const newTransportNumber = text.replace(responseStringPrefix, '');
70
+ return newTransportNumber;
95
71
  }
96
72
  }
97
73
  }
@@ -101,6 +77,6 @@ exports.TransportRequestService = TransportRequestService;
101
77
  */
102
78
  TransportRequestService.AdtCategory = {
103
79
  scheme: 'http://www.sap.com/adt/categories/cts',
104
- term: 'transportmanagement'
80
+ term: 'transports'
105
81
  };
106
82
  //# sourceMappingURL=transportrequest-service.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap-ux/axios-extension",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "Extension of the Axios module adding convinience methods to interact with SAP systems especially with OData services.",
5
5
  "repository": {
6
6
  "type": "git",