@@ -10,15 +10,23 @@ import type { InternalConfig } from "../../../utils/Config";
1010 * @returns Modified internal request object
1111 */
1212export const composeRequest = ( request : InternalRequest , config : Partial < InternalConfig > ) : InternalRequest => {
13- request . path = request . path || "" ;
13+ request . path = "" ; //path must always be reset
1414 request . functionName = request . functionName || "" ;
1515 if ( ! request . url ) {
1616 if ( ! request . _isUnboundRequest && ! request . contentId && ! request . collection ) {
1717 ErrorHelper . parameterCheck ( request . collection , `DynamicsWebApi.${ request . functionName } ` , "request.collection" ) ;
1818 }
19+
20+ if ( request . contentId ) {
21+ ErrorHelper . stringParameterCheck ( request . contentId , `DynamicsWebApi.${ request . functionName } ` , "request.contentId" ) ;
22+ if ( request . contentId . startsWith ( "$" ) ) {
23+ request . path = request . contentId ;
24+ }
25+ }
26+
1927 if ( request . collection != null ) {
2028 ErrorHelper . stringParameterCheck ( request . collection , `DynamicsWebApi.${ request . functionName } ` , "request.collection" ) ;
21- request . path = request . collection ;
29+ request . path += request . path ? `/ ${ request . collection } ` : request . collection ;
2230
2331 //add alternate key feature
2432 if ( request . key ) {
@@ -27,13 +35,6 @@ export const composeRequest = (request: InternalRequest, config: Partial<Interna
2735 }
2836 }
2937
30- if ( request . contentId ) {
31- ErrorHelper . stringParameterCheck ( request . contentId , `DynamicsWebApi.${ request . functionName } ` , "request.contentId" ) ;
32- if ( request . contentId . startsWith ( "$" ) ) {
33- request . path = request . path ? `${ request . contentId } /${ request . path } ` : request . contentId ;
34- }
35- }
36-
3738 if ( request . addPath ) {
3839 if ( request . path ) {
3940 request . path += "/" ;
@@ -42,12 +43,6 @@ export const composeRequest = (request: InternalRequest, config: Partial<Interna
4243 }
4344
4445 request . path = composeUrl ( request , config , request . path ) ;
45-
46- if ( request . fetchXml ) {
47- ErrorHelper . stringParameterCheck ( request . fetchXml , `DynamicsWebApi.${ request . functionName } ` , "request.fetchXml" ) ;
48- let join = request . path . indexOf ( "?" ) === - 1 ? "?" : "&" ;
49- request . path += `${ join } fetchXml=${ encodeURIComponent ( request . fetchXml ) } ` ;
50- }
5146 } else {
5247 ErrorHelper . stringParameterCheck ( request . url , `DynamicsWebApi.${ request . functionName } ` , "request.url" ) ;
5348 request . path = request . url . replace ( config . dataApi ! . url , "" ) ;
0 commit comments