Skip to content

Commit 53f6409

Browse files
author
jodeleit-es
committed
review changes
1 parent cefb13f commit 53f6409

5 files changed

Lines changed: 39 additions & 27 deletions

File tree

src/modules/CaaSMapper.spec.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,18 @@ describe('CaaSMapper', () => {
144144
})
145145

146146
describe('buildMediaUrl', () => {
147-
it('should return the url as-is in release mode', () => {
147+
it('should return the url as-is in release mode when includeRevisionInMediaUrls is false', () => {
148148
const api = createApi()
149149
api.contentMode = FSXAContentMode.RELEASE
150+
api.includeRevisionInMediaUrls = false
150151
const mapper = new CaaSMapper(api, 'de', {}, createLogger())
151152
const url = 'https://e-spirit.local/some/resource'
152153
expect(mapper.buildMediaUrl(url)).toEqual(url)
154+
expect(mapper.buildMediaUrl(url, 5593)).toEqual(url)
153155
})
154-
it('should append the revision as a query param if given in preview mode', () => {
156+
it('should append the revision as a query param if given when includeRevisionInMediaUrls is true', () => {
155157
const api = createApi()
156-
api.contentMode = FSXAContentMode.PREVIEW
158+
api.includeRevisionInMediaUrls = true
157159
const mapper = new CaaSMapper(api, 'de', {}, createLogger())
158160
const url = 'https://e-spirit.local/some/resource'
159161
expect(mapper.buildMediaUrl(url)).toEqual(url)
@@ -164,11 +166,11 @@ describe('CaaSMapper', () => {
164166
)
165167
})
166168

167-
it('should append the revision as a query param if addRevisionToMediaUrlsInRelease is true and content mode is release', () => {
169+
it('should append the revision as a query param if includeRevisionInMediaUrls is true and content mode is release', () => {
168170
const api = createApi()
169171
api.contentMode = FSXAContentMode.RELEASE
170-
api.addRevisionToMediaUrlsInRelease = true
171-
const mapper = new CaaSMapper(api, 'de', {addRevisionToMediaUrlsInRelease: true}, createLogger())
172+
api.includeRevisionInMediaUrls = true
173+
const mapper = new CaaSMapper(api, 'de', {}, createLogger())
172174
const url = 'https://e-spirit.local/some/resource'
173175
expect(mapper.buildMediaUrl(url)).toEqual(url)
174176
expect(mapper.buildMediaUrl(url, 5593)).toEqual(`${url}?rev=5593`)

src/modules/CaaSMapper.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,17 +106,13 @@ export class CaaSMapper {
106106
// just started, when we need to keep track of them.
107107
_processedItems: Record<string, true> = {}
108108

109-
// Add Revision query param to media urls in release case
110-
addRevisionToMediaUrlsInRelease: boolean = false
111-
112109
constructor(
113110
api: FSXARemoteApi,
114111
locale: string | undefined,
115112
utils: {
116113
customMapper?: CustomMapper
117114
referenceDepth?: number
118115
maxReferenceDepth?: number
119-
addRevisionToMediaUrlsInRelease?: boolean
120116
},
121117
logger: Logger
122118
) {
@@ -133,7 +129,6 @@ export class CaaSMapper {
133129
utils.maxReferenceDepth ?? DEFAULT_MAX_REFERENCE_DEPTH
134130

135131
this.logger.debug('Created new CaaSMapper')
136-
this.addRevisionToMediaUrlsInRelease = utils.addRevisionToMediaUrlsInRelease ?? false
137132
}
138133

139134
addToResolvedReferences(
@@ -236,7 +231,7 @@ export class CaaSMapper {
236231
}
237232

238233
buildMediaUrl(url: string, rev?: number) {
239-
if (rev && (this.api.contentMode === FSXAContentMode.PREVIEW || this.addRevisionToMediaUrlsInRelease)) {
234+
if (rev && this.api.includeRevisionInMediaUrls) {
240235
url += `${url.includes('?') ? '&' : '?'}rev=${rev}`
241236
}
242237
return url

src/modules/FSXARemoteApi.spec.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,22 @@ describe('FSXARemoteAPI', () => {
8686
new FSXARemoteApi(config)
8787
}).toThrow(FSXAApiErrors.UNKNOWN_CONTENT_MODE)
8888
})
89+
it('should default includeRevisionInMediaUrls to true in preview mode', () => {
90+
config.contentMode = 'preview'
91+
remoteApi = new FSXARemoteApi(config)
92+
expect(remoteApi.includeRevisionInMediaUrls).toBe(true)
93+
})
94+
it('should default includeRevisionInMediaUrls to false in release mode', () => {
95+
config.contentMode = 'release'
96+
remoteApi = new FSXARemoteApi(config)
97+
expect(remoteApi.includeRevisionInMediaUrls).toBe(false)
98+
})
99+
it('should allow overriding includeRevisionInMediaUrls in release mode', () => {
100+
config.contentMode = 'release'
101+
config.includeRevisionInMediaUrls = true
102+
remoteApi = new FSXARemoteApi(config)
103+
expect(remoteApi.includeRevisionInMediaUrls).toBe(true)
104+
})
89105
})
90106
describe('buildAuthorizationHeaders', () => {
91107
it('should return the correct authorization object', () => {

src/modules/FSXARemoteApi.ts

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import {
3030
removeFromSeoRouteMap,
3131
removeFromStructure,
3232
} from '../utils'
33-
import { FSXAApiErrors, HttpStatus } from './../enums'
33+
import { FSXAApiErrors, FSXAContentMode, HttpStatus } from './../enums'
3434
import { LogLevel } from './Logger'
3535
import { denormalizeResolvedReferences } from './MappingUtils'
3636
import { ComparisonQueryOperatorEnum, QueryBuilder } from './QueryBuilder'
@@ -74,7 +74,7 @@ export class FSXARemoteApi implements FSXAApi {
7474
private _caasItemFilter?: CaasItemFilter
7575
private _logLevel: LogLevel
7676
private _enableEventStream: boolean = false
77-
private _addRevisionToMediaUrlsInRelease: boolean = false
77+
private _includeRevisionInMediaUrls: boolean = false
7878

7979
/**
8080
* The constructor of this class initializes the configuration for the api.
@@ -91,7 +91,7 @@ export class FSXARemoteApi implements FSXAApi {
9191
* @param config.customMapper optional {@link CustomMapper CustomMapper}
9292
* @param config.filterOptions optional {@link RemoteApiFilterOptions RemoteApiFilterOptions} (EXPERIMENTAL)
9393
* @param config.logLevel the used {@link LogLevel LogLevel} for the API `(default LogLevel.ERROR)` - optional
94-
* @param config.addRevisionToMediaUrlsInRelease sets flag if revision query param should be added to media urls in release.
94+
* @param config.includeRevisionInMediaUrls whether to append `rev` query param to media URLs `(default: true in preview, false in release)`
9595
*/
9696
constructor({
9797
apikey,
@@ -105,7 +105,7 @@ export class FSXARemoteApi implements FSXAApi {
105105
customMapper,
106106
filterOptions,
107107
logLevel = LogLevel.ERROR,
108-
addRevisionToMediaUrlsInRelease = false
108+
includeRevisionInMediaUrls = contentMode === FSXAContentMode.PREVIEW, // default to true in preview, false in release
109109
}: FSXARemoteApiConfig) {
110110
this.apikey = apikey
111111
this.caasURL = caasURL
@@ -121,7 +121,7 @@ export class FSXARemoteApi implements FSXAApi {
121121
this._queryBuilder = new QueryBuilder(this._logger)
122122
this._navigationItemFilter = filterOptions?.navigationItemFilter
123123
this._caasItemFilter = filterOptions?.caasItemFilter
124-
this._addRevisionToMediaUrlsInRelease = addRevisionToMediaUrlsInRelease
124+
this._includeRevisionInMediaUrls = includeRevisionInMediaUrls
125125

126126
this._logger.debug('FSXARemoteApi created', {
127127
caasURL,
@@ -133,7 +133,7 @@ export class FSXARemoteApi implements FSXAApi {
133133
customMapper: this._customMapper,
134134
navigationItemFilter: this._navigationItemFilter,
135135
caasItemFilter: this._caasItemFilter,
136-
addRevisionToMediaUrlsInRelease
136+
includeRevisionInMediaUrls: this._includeRevisionInMediaUrls
137137
})
138138
}
139139

@@ -640,8 +640,7 @@ export class FSXARemoteApi implements FSXAApi {
640640
mapperLocale,
641641
{
642642
customMapper: this._customMapper,
643-
maxReferenceDepth: this._maxReferenceDepth,
644-
addRevisionToMediaUrlsInRelease: this._addRevisionToMediaUrlsInRelease
643+
maxReferenceDepth: this._maxReferenceDepth
645644
},
646645
new Logger(this._logLevel, 'CaaSMapper')
647646
)
@@ -1050,17 +1049,17 @@ export class FSXARemoteApi implements FSXAApi {
10501049
}
10511050

10521051
/**
1053-
* gets flag, if revision should be added to media urls in release
1052+
* @returns whether revision query parameter `rev` is appended to media URLs
10541053
*/
1055-
public get addRevisionToMediaUrlsInRelease() {
1056-
return this._addRevisionToMediaUrlsInRelease
1054+
public get includeRevisionInMediaUrls() {
1055+
return this._includeRevisionInMediaUrls
10571056
}
10581057

10591058
/**
1060-
* Sets flag, if revision should be added to media urls in release
1059+
* Sets whether revision query parameter `rev` is appended to media URLs
10611060
*/
1062-
public set addRevisionToMediaUrlsInRelease(value: boolean) {
1063-
this._addRevisionToMediaUrlsInRelease = value
1061+
public set includeRevisionInMediaUrls(value: boolean) {
1062+
this._includeRevisionInMediaUrls = value
10641063
}
10651064

10661065
/**

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,7 @@ export type FSXARemoteApiConfig = {
10331033
customMapper?: CustomMapper
10341034
filterOptions?: RemoteApiFilterOptions
10351035
enableEventStream?: boolean
1036-
addRevisionToMediaUrlsInRelease?: boolean
1036+
includeRevisionInMediaUrls?: boolean
10371037
}
10381038

10391039
export type FilterContextProvider = () => unknown | null

0 commit comments

Comments
 (0)