|
|
@@ -4,9 +4,6 @@ import { QUERY_TYPE } from '~/types/enums'
|
|
|
import { repositoryHelper } from '~/services/store/repository'
|
|
|
|
|
|
/**
|
|
|
- * @category Services/connection
|
|
|
- * @class UrlBuilder
|
|
|
- *
|
|
|
* Classe permettant de construire une URL pour l'interrogation d'une API externe
|
|
|
*/
|
|
|
class UrlBuilder {
|
|
|
@@ -42,7 +39,7 @@ class UrlBuilder {
|
|
|
if (typeof url === 'undefined') {
|
|
|
throw new TypeError('url must be defined')
|
|
|
}
|
|
|
- return String(UrlBuilder.ROOT + url).toString()
|
|
|
+ return UrlBuilder.concat(UrlBuilder.ROOT, url)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -54,7 +51,7 @@ class UrlBuilder {
|
|
|
if (typeof enumType === 'undefined') {
|
|
|
throw new TypeError('enumType must be defined')
|
|
|
}
|
|
|
- return String(UrlBuilder.ROOT + 'enum/' + enumType).toString()
|
|
|
+ return UrlBuilder.concat(UrlBuilder.ROOT, 'enum', enumType)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -82,7 +79,21 @@ class UrlBuilder {
|
|
|
return String(`${rootUrl}/${rootId}/${entity}`).toString()
|
|
|
}
|
|
|
|
|
|
- return String(UrlBuilder.ROOT + entity).toString()
|
|
|
+ return UrlBuilder.concat(UrlBuilder.ROOT, entity)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Concatenate a base url and a tail
|
|
|
+ * @param base
|
|
|
+ * @param tails
|
|
|
+ * @private
|
|
|
+ */
|
|
|
+ public static concat (base: string, ...tails: string[]): string {
|
|
|
+ let url = base
|
|
|
+ tails.forEach((tail: string) => {
|
|
|
+ url = url.replace(/^|\/$/g, '') + '/' + tail.replace(/^\/?|$/g, '')
|
|
|
+ })
|
|
|
+ return url
|
|
|
}
|
|
|
}
|
|
|
|