diff --git a/.changeset/silver-actors-sing.md b/.changeset/silver-actors-sing.md new file mode 100644 index 0000000..432d354 --- /dev/null +++ b/.changeset/silver-actors-sing.md @@ -0,0 +1,5 @@ +--- +"@redredgroup/samsungknox-api": patch +--- + +Removed KnoxDefaultAxios and replaced it with Knox{PRODUCT_NAME}Instance to support more APIs. diff --git a/packages/knox-api/src/apis/ams/v1/users/access-token.ts b/packages/knox-api/src/apis/ams/v1/users/access-token.ts index 79dbd27..a06203b 100644 --- a/packages/knox-api/src/apis/ams/v1/users/access-token.ts +++ b/packages/knox-api/src/apis/ams/v1/users/access-token.ts @@ -1,4 +1,4 @@ -import { knoxDefaultAxios } from '~/utils'; +import { knoxAmsInstance, knoxKcsInstance } from '~/utils'; import { BaseApiRequireArgs, BaseResponse } from '~/types'; import { KnoxRequestError } from '~/errors'; import { AccessTokenArgs, AccessTokenResponse } from './access-token.type'; @@ -9,7 +9,7 @@ export const requestAccessToken = async ({ validityForAccessTokenInMinutes, region, }: BaseApiRequireArgs): Promise> => { - const axios = knoxDefaultAxios({ region }); + const axios = knoxAmsInstance({ region }); try { const { data } = await axios.post('/ams/v1/users/accesstoken', { diff --git a/packages/knox-api/src/apis/index.ts b/packages/knox-api/src/apis/index.ts index d652c86..37a25c5 100644 --- a/packages/knox-api/src/apis/index.ts +++ b/packages/knox-api/src/apis/index.ts @@ -1,60 +1,9 @@ -import { AxiosInstance } from 'axios'; -import { knoxDefaultAxios } from '~/utils'; -import { KCContentManagementApplication, KCContentManagementAsset, KCDevice, KCLicense, KCProfile } from './kcs'; -import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; - /** * Functions Export * * functions are mostly suitable for making simple calls or when your code is working on top of functions. * They can also be used independently without creating a class instance. */ -export * from './custom'; -export * from './ams'; export * from './kcs'; - -/** - * Class Export - * - * If you want to call a lot of APIs at once, or if you want to customize and use your own instances, - * create a class instance and use it. - */ -export class KnoxInstance { - public kcProfile: KCProfile; - public kcLicense: KCLicense; - public kcDevice: KCDevice; - public kcContentManagementApplication: KCContentManagementApplication; - public kcContentManagementAsset: KCContentManagementAsset; - - private axios: AxiosInstance; - private knoxAccessToken: string | null = null; - private region: string | null = null; - - constructor({ knoxAccessToken, region }: { knoxAccessToken: string; region: string }) { - if (!knoxAccessToken) { - throw new KnoxRequestError(0, ERROR_MESSAGES.KNOX_ACCESS_TOKEN_MISSING); - } else { - this.knoxAccessToken = knoxAccessToken; - } - - if (!region) { - console.warn( - 'region was not injected, so it was automatically set to the default region of US. It is recommended that you add region manually to avoid making calls to a different or unexpected region.', - ); - this.region = 'US'; - } else { - this.region = region.toLowerCase(); - } - - this.axios = knoxDefaultAxios({ - region: this.region, - knoxAccessToken: this.knoxAccessToken, - }); - - this.kcProfile = new KCProfile(this.axios); - this.kcLicense = new KCLicense(this.axios); - this.kcDevice = new KCDevice(this.axios); - this.kcContentManagementApplication = new KCContentManagementApplication(this.axios); - this.kcContentManagementAsset = new KCContentManagementAsset(this.axios); - } -} +export * from './ams'; +export * from './custom'; diff --git a/packages/knox-api/src/apis/kcs/index.ts b/packages/knox-api/src/apis/kcs/index.ts index 5b98253..caf8772 100644 --- a/packages/knox-api/src/apis/kcs/index.ts +++ b/packages/knox-api/src/apis/kcs/index.ts @@ -1 +1,61 @@ +import { AxiosInstance } from 'axios'; +import { knoxKcsInstance } from '~/utils'; +import { KCContentManagementApplication, KCContentManagementAsset, KCDevice, KCLicense, KCProfile } from './v1'; +import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; + +/** + * Functions Export + * + * functions are mostly suitable for making simple calls or when your code is working on top of functions. + * They can also be used independently without creating a class instance. + */ export * from './v1'; + +/** + * Knox Configure (kc) Instance + * + * Class Export + * + * If you want to call a lot of APIs at once, or if you want to customize and use your own instances, + * create a class instance and use it. + */ +export class KcInstance { + public v1: { + Profile: KCProfile; + License: KCLicense; + Device: KCDevice; + ContentManagementApplication: KCContentManagementApplication; + ContentManagementAsset: KCContentManagementAsset; + }; + + private axios: AxiosInstance; + private knoxAccessToken: string | null = null; + private region: string | null = null; + + constructor({ knoxAccessToken, region }: { knoxAccessToken: string; region: string }) { + if (!knoxAccessToken) { + throw new KnoxRequestError(0, ERROR_MESSAGES.KNOX_ACCESS_TOKEN_MISSING); + } else { + this.knoxAccessToken = knoxAccessToken; + } + + if (!region) { + throw new KnoxRequestError(0, ERROR_MESSAGES.KNOX_REGION_MISSING); + } else { + this.region = region.toLowerCase(); + } + + this.axios = knoxKcsInstance({ + region: this.region, + knoxAccessToken: this.knoxAccessToken, + }); + + this.v1 = { + Profile: new KCProfile(this.axios), + License: new KCLicense(this.axios), + Device: new KCDevice(this.axios), + ContentManagementApplication: new KCContentManagementApplication(this.axios), + ContentManagementAsset: new KCContentManagementAsset(this.axios), + }; + } +} diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.spec.ts index 6973201..e891e12 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; import { kcCreateApplicationProfile } from './create-application-profile'; -import { KnoxInstance } from '~/apis'; +import { KcInstance } from '~/apis'; describe('POST /kcs/v1/kc/applications/profile Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -63,12 +63,12 @@ describe('CLASS POST /kcs/v1/kc/applications/profile Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'US', }); - await instance.kcContentManagementApplication.createApplicationProfile({ + await instance.v1.ContentManagementApplication.createApplicationProfile({ args: { additionalEula: { termsAndConditions: '', @@ -93,12 +93,12 @@ describe('CLASS POST /kcs/v1/kc/applications/profile Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'TEST', }); - await instance.kcContentManagementApplication.createApplicationProfile({ + await instance.v1.ContentManagementApplication.createApplicationProfile({ args: { additionalEula: { termsAndConditions: '', diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.ts index 35c2e49..4873965 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/create-application-profile/create-application-profile.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCCreateApplicationProfileArgs, KCCreateApplicationProfileResponse } from './create-application-profile.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { AxiosInstance } from 'axios'; import { KnoxRequestError } from '~/errors'; @@ -8,7 +8,7 @@ export const kcCreateApplicationProfile = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.spec.ts index 91318ba..53cfe1d 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; import { kcDeleteApplicationVersions } from './delete-application-versions'; -import { KnoxInstance } from '~/apis'; +import { KcInstance } from '~/apis'; describe('DELETE /kcs/v1/kc/applications/{applicationId} Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -55,12 +55,12 @@ describe('CLASS POST /kcs/v1/kc/applications/profile Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'US', }); - await instance.kcContentManagementApplication.deleteApplicationVersions({ + await instance.v1.ContentManagementApplication.deleteApplicationVersions({ args: { applicationId: 'TEST_APP', }, @@ -81,12 +81,12 @@ describe('CLASS POST /kcs/v1/kc/applications/profile Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: 'asd', region: 'TEST', }); - await instance.kcContentManagementApplication.deleteApplicationVersions({ + await instance.v1.ContentManagementApplication.deleteApplicationVersions({ args: { applicationId: 'TEST_APP', }, diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.ts index 179a387..3ac41c3 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/delete-application-versions/delete-application-versions.ts @@ -1,6 +1,6 @@ import { BaseApiRequireArgs, BaseArgsInput, BaseResponse, BaseXApiRequire } from '~/types'; import { KCDeleteApplicationVersionsResponse, KCDeleteApplicationVersionsArgs } from './delete-application-versions.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcDeleteApplicationVersions = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/get-applications/get-applications.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/get-applications/get-applications.ts index 31fe951..5405e5c 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/get-applications/get-applications.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/get-applications/get-applications.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCGetApplicationResponse, KCGetApplicationsArgs } from './get-applications.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetApplications = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.spec.ts index 50bd83b..03a7625 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; -import { KnoxInstance, kcUploadAPublicAppFromPlayStoreOrGalaxyStore } from '~/apis'; +import { KcInstance, kcUploadAPublicAppFromPlayStoreOrGalaxyStore } from '~/apis'; describe('POST /kcs/v1/kc/applications Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -58,12 +58,12 @@ describe('CLASS POST /kcs/v1/kc/applications Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'US', }); - await instance.kcContentManagementApplication.uploadAPublicAppFromPlayStoreOrGalaxyStore({ + await instance.v1.ContentManagementApplication.uploadAPublicAppFromPlayStoreOrGalaxyStore({ args: { name: '', platform: 'ANDROID', @@ -86,12 +86,12 @@ describe('CLASS POST /kcs/v1/kc/applications Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: 'asd', region: 'TEST', }); - await instance.kcContentManagementApplication.uploadAPublicAppFromPlayStoreOrGalaxyStore({ + await instance.v1.ContentManagementApplication.uploadAPublicAppFromPlayStoreOrGalaxyStore({ args: { name: '', platform: 'ANDROID', diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.ts index 48bfc7c..19161f8 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-a-public-app-from-playstore-or-galaxystore/upload-a-public-app-from-playstore-or-galaxystore.ts @@ -3,7 +3,7 @@ import { KCUploadAPublicFromPlayStoreOrGalaxyStoreAppArgs, KCUploadAPublicFromPlayStoreOrGalaxyStoreAppResponse, } from './upload-a-public-app-from-playstore-or-galaxystore.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { AxiosInstance } from 'axios'; import { KnoxRequestError } from '~/errors'; @@ -11,7 +11,7 @@ export const kcUploadAPublicAppFromPlayStoreOrGalaxyStore = ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.spec.ts index 0a988aa..6463f18 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; -import { KnoxInstance, kcUploadAnInHouseApp } from '~/apis'; +import { KcInstance, kcUploadAnInHouseApp } from '~/apis'; describe('POST /kcs/v1/kc/applications/upload Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -56,12 +56,12 @@ describe('CLASS POST /kcs/v1/kc/applications/upload Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'US', }); - await instance.kcContentManagementApplication.uploadAnInHouseApp({ + await instance.v1.ContentManagementApplication.uploadAnInHouseApp({ args: { name: '', file: '', @@ -83,12 +83,12 @@ describe('CLASS POST /kcs/v1/kc/applications/upload Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: 'asd', region: 'TEST', }); - await instance.kcContentManagementApplication.uploadAnInHouseApp({ + await instance.v1.ContentManagementApplication.uploadAnInHouseApp({ args: { name: '', file: '', diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.ts index 23ed710..3ad28b2 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-application/upload-an-in-house-app/upload-an-in-house-app.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCUploadAnInHouseAppArgs, KCUploadAnInHouseAppResponse } from './upload-an-in-house-app.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { AxiosInstance } from 'axios'; import { KnoxRequestError } from '~/errors'; @@ -8,7 +8,7 @@ export const kcUploadAnInHouseApp = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ + const axios = knoxKcsInstance({ region, knoxAccessToken, customHeader: { diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.spec.ts index 0b00356..485dd9d 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; -import { KnoxInstance, kcGetMediaFile } from '~/apis'; +import { KcInstance, kcGetMediaFile } from '~/apis'; describe('GET /kcs/v1/kc/assets/${contentId} Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -54,12 +54,12 @@ describe('CLASS GET /kcs/v1/kc/assets/${contentId} Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'US', }); - await instance.kcContentManagementAsset.getMediaFile({ + await instance.v1.ContentManagementAsset.getMediaFile({ args: { contentId: '', }, @@ -80,12 +80,12 @@ describe('CLASS GET /kcs/v1/kc/assets/${contentId} Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: 'asd', region: 'TEST', }); - await instance.kcContentManagementAsset.getMediaFile({ + await instance.v1.ContentManagementAsset.getMediaFile({ args: { contentId: '', }, diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.ts index 12cfb63..16d236f 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/get-media-file/get-media-file.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCGetMediaFileArgs, KCGetMediaFileResponse } from './get-media-file.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { AxiosInstance } from 'axios'; import { KnoxRequestError } from '~/errors'; @@ -8,7 +8,7 @@ export const kcGetMediaFile = ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.spec.ts index 4781385..653f25e 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import { ERROR_MESSAGES, KnoxRequestError } from '~/errors'; -import { KnoxInstance, kcUploadMediaFileContentInCms } from '~/apis'; +import { KcInstance, kcUploadMediaFileContentInCms } from '~/apis'; describe('POST /kcs/v1/kc/assets Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -54,12 +54,12 @@ describe('CLASS POST /kcs/v1/kc/assets Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: '', region: 'US', }); - await instance.kcContentManagementAsset.uploadMediaFileContentInCms({ + await instance.v1.ContentManagementAsset.uploadMediaFileContentInCms({ args: { file: '', }, @@ -80,12 +80,12 @@ describe('CLASS POST /kcs/v1/kc/assets Test', () => { let hasError = false; try { - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: 'asd', region: 'TEST', }); - await instance.kcContentManagementAsset.uploadMediaFileContentInCms({ + await instance.v1.ContentManagementAsset.uploadMediaFileContentInCms({ args: { file: '', }, diff --git a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.ts b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.ts index dd37c77..080466b 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/content-management-asset/upload-media-file-content-in-cms/upload-media-file-content-in-cms.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCUploadMediaFileContentInCmsArgs, KCUploadMediaFileContentInCmsResponse } from './upload-media-file-content-in-cms.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { AxiosInstance } from 'axios'; import { KnoxRequestError } from '~/errors'; @@ -8,7 +8,7 @@ export const kcUploadMediaFileContentInCms = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/device/assign-profile/assign-profile.ts b/packages/knox-api/src/apis/kcs/v1/kc/device/assign-profile/assign-profile.ts index 8162f59..7827453 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/device/assign-profile/assign-profile.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/device/assign-profile/assign-profile.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCAssignProfileDeviceArgs, KCAssignProfileDeviceResponse } from './assign-profile.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcAssignProfileDevices = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/device/delete-devices/delete-devices.ts b/packages/knox-api/src/apis/kcs/v1/kc/device/delete-devices/delete-devices.ts index bfb8184..53ffb7e 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/device/delete-devices/delete-devices.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/device/delete-devices/delete-devices.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCDeleteDevicesArgs, KCDeleteDevicesResponse } from './delete-devices.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcDeleteDevices = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/device/get-device-logs/get-device-logs.ts b/packages/knox-api/src/apis/kcs/v1/kc/device/get-device-logs/get-device-logs.ts index 69c0985..f63d6ba 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/device/get-device-logs/get-device-logs.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/device/get-device-logs/get-device-logs.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCGetDeviceLogsArgs, KCGetDeviceLogsResponse } from './get-device-logs.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetDeviceLogs = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/device/get-devices/get-devices.ts b/packages/knox-api/src/apis/kcs/v1/kc/device/get-devices/get-devices.ts index 93f207a..046c13c 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/device/get-devices/get-devices.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/device/get-devices/get-devices.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCGetDevicesArgs, KCGetDevicesResponse } from './get-devices.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetDevices = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/device/send-command-to-multiple-devices/send-command-to-multiple-devices.ts b/packages/knox-api/src/apis/kcs/v1/kc/device/send-command-to-multiple-devices/send-command-to-multiple-devices.ts index 9e98f34..6d6cf05 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/device/send-command-to-multiple-devices/send-command-to-multiple-devices.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/device/send-command-to-multiple-devices/send-command-to-multiple-devices.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCSendCommandToMultipleDeviceArgs, KCSendCommandToMultipleDeviceResponse } from './send-command-to-multiple-devices.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcSendCommandToMultipleDevices = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/device/unassign-profile/unassign-profile.ts b/packages/knox-api/src/apis/kcs/v1/kc/device/unassign-profile/unassign-profile.ts index c5f3840..54e3954 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/device/unassign-profile/unassign-profile.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/device/unassign-profile/unassign-profile.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCUnassignProfileDevicesArgs, KCUnassignProfileDevicesResponse } from './unassign-profile.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcUnassignProfileDevices = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/license/generate-trial-license/generate-trial-license.ts b/packages/knox-api/src/apis/kcs/v1/kc/license/generate-trial-license/generate-trial-license.ts index 290a52e..9aaf7e1 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/license/generate-trial-license/generate-trial-license.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/license/generate-trial-license/generate-trial-license.ts @@ -1,4 +1,4 @@ -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse, BaseKCLicense } from '~/types'; import { KCTrialLicenseArgs } from './generate-trial-license.type'; @@ -8,7 +8,7 @@ export const kcGenerateTrialLicense = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/license/get-license-details-by-license-id/get-license-detail-by-license-id.ts b/packages/knox-api/src/apis/kcs/v1/kc/license/get-license-details-by-license-id/get-license-detail-by-license-id.ts index 7884c28..bc6b041 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/license/get-license-details-by-license-id/get-license-detail-by-license-id.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/license/get-license-details-by-license-id/get-license-detail-by-license-id.ts @@ -1,6 +1,6 @@ import { BaseApiRequireArgs, BaseArgsInput, BaseResponse, BaseXApiRequire } from '~/types'; import { KCLicenseDetailArgs, KCLicensesDetailResponse } from './get-license-detail-by-license-id.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetLicenseDetailByLicenseId = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.spec.ts index 028cd32..6254f75 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.spec.ts @@ -7,7 +7,7 @@ import { generateBase64EncodedStringPublicKey, generateSignedAccessTokenJWT, } from '@redredgroup/samsungknox-token-library'; -import { KnoxInstance, generateKnoxApiToken, requestAccessToken } from '~/apis'; +import { KcInstance, generateKnoxApiToken, requestAccessToken } from '~/apis'; describe('GET /kcs/v1/kc/licenses Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -116,12 +116,12 @@ describe('(CLASS) GET /kcs/v1/kc/licenses Test', () => { accessToken: result.accessToken, }); - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: accessToken, region: 'EU', }); - const getProfiles = await instance.kcLicense.getLicense({ + const getProfiles = await instance.v1.License.getLicense({ args: {}, }); diff --git a/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.ts b/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.ts index 5951bec..b47009f 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/license/get-licenses/get-licenses.ts @@ -1,5 +1,5 @@ import { KnoxRequestError } from '~/errors'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCLicensesArgs, KCLicensesResponse } from './get-licenses.type'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetLicenses = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/license/register-license/register-license.ts b/packages/knox-api/src/apis/kcs/v1/kc/license/register-license/register-license.ts index 519fb02..b02f56d 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/license/register-license/register-license.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/license/register-license/register-license.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse, BaseKCLicense } from '~/types'; import { KCRegisterLicenseArgs } from './register-license.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcRegisterLicense = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/license/validate-license/validate-license.ts b/packages/knox-api/src/apis/kcs/v1/kc/license/validate-license/validate-license.ts index 63e94e0..fa0850a 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/license/validate-license/validate-license.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/license/validate-license/validate-license.ts @@ -1,6 +1,6 @@ import { BaseApiRequireArgs, BaseArgsInput, BaseXApiRequire, BaseKCLicense, BaseResponse } from '~/types'; import { KCValidateLicenseArgs } from './validate-license.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcValidateLicense = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/profiles/delete-profile/delete-profile.ts b/packages/knox-api/src/apis/kcs/v1/kc/profiles/delete-profile/delete-profile.ts index 0aae07d..d775b88 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/profiles/delete-profile/delete-profile.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/profiles/delete-profile/delete-profile.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCDeleteProfileArgs, KCDeleteProfileResponse } from './delete-profile.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcDeleteProfile = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profile-details/get-profile-details.ts b/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profile-details/get-profile-details.ts index 63d87ca..032908c 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profile-details/get-profile-details.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profile-details/get-profile-details.ts @@ -1,6 +1,6 @@ import { BaseXApiRequire, BaseApiRequireArgs, BaseArgsInput, BaseResponse } from '~/types'; import { KCGetProfileDetailsArgs, KCGetProfileDetailsResponse } from './get-profile-details.type'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { KnoxRequestError } from '~/errors'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetProfileDetails = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.spec.ts b/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.spec.ts index d526b4f..a4dc70c 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.spec.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.spec.ts @@ -8,7 +8,7 @@ import { generateSignedAccessTokenJWT, } from '@redredgroup/samsungknox-token-library'; import { requestAccessToken } from 'src/apis/ams'; -import { KnoxInstance, generateKnoxApiToken } from '~/apis'; +import { KcInstance, generateKnoxApiToken } from '~/apis'; describe('GET /kcs/v1/kc/profiles Test', () => { it('X-KNOX_APITOKEN missing', async () => { @@ -114,12 +114,12 @@ describe('(CLASS) GET /kcs/v1/kc/profiles Test', () => { accessToken: result.accessToken, }); - const instance = new KnoxInstance({ + const instance = new KcInstance({ knoxAccessToken: accessToken, region: 'EU', }); - const getProfiles = await instance.kcProfile.getProfiles({ + const getProfiles = await instance.v1.Profile.getProfiles({ args: {}, }); diff --git a/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.ts b/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.ts index 268fc75..51fc1ca 100644 --- a/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.ts +++ b/packages/knox-api/src/apis/kcs/v1/kc/profiles/get-profiles/get-profiles.ts @@ -1,5 +1,5 @@ import { KnoxRequestError } from '~/errors'; -import { knoxDefaultAxios } from '~/utils'; +import { knoxKcsInstance } from '~/utils'; import { BaseApiRequireArgs, BaseArgsInput, BaseResponse, BaseXApiRequire } from '~/types'; import { GetKnoxConfigureProfilesResponseType, GetKnoxConfigureProfilesArgsType } from './get-profiles.type'; import { AxiosInstance } from 'axios'; @@ -8,7 +8,7 @@ export const kcGetProfiles = async ( value: BaseXApiRequire>>, ): Promise> => { const { region, knoxAccessToken, args } = value; - const axios = knoxDefaultAxios({ region, knoxAccessToken }); + const axios = knoxKcsInstance({ region, knoxAccessToken }); return request({ args, axios }); }; diff --git a/packages/knox-api/src/errors/base-knox-axios.error.ts b/packages/knox-api/src/errors/base-knox-axios.error.ts index 11a2a67..5dbff82 100644 --- a/packages/knox-api/src/errors/base-knox-axios.error.ts +++ b/packages/knox-api/src/errors/base-knox-axios.error.ts @@ -4,6 +4,7 @@ import { KnoxRequestError } from './base-knox.error'; export const ERROR_MESSAGES = { KNOX_ACCESS_TOKEN_MISSING: 'For the Class type, an X-KNOX-APITOKEN must be injected into the instance.', + KNOX_REGION_MISSING: 'For the Class type, an region must be injected into the instance.', }; // export const ERROR_MAP: Record = { diff --git a/packages/knox-api/src/utils/index.ts b/packages/knox-api/src/utils/index.ts index 1c02e83..d46b5fe 100644 --- a/packages/knox-api/src/utils/index.ts +++ b/packages/knox-api/src/utils/index.ts @@ -1 +1 @@ -export * from './knox-axios'; +export * from './instance'; diff --git a/packages/knox-api/src/utils/instance.ts b/packages/knox-api/src/utils/instance.ts new file mode 100644 index 0000000..2f4a8f6 --- /dev/null +++ b/packages/knox-api/src/utils/instance.ts @@ -0,0 +1,38 @@ +import axios, { AxiosHeaders } from 'axios'; +import { handleKnoxError } from '~/errors'; + +const defaultHeaders = { + 'content-type': 'application/json', +}; + +export const knoxKcsInstance = ({ region, knoxAccessToken, customHeader }: { region: string; knoxAccessToken?: string; customHeader?: object }) => { + const instance = axios.create({ + baseURL: `https://${region.toLowerCase()}-kcs-api.samsungknox.com`, + headers: { + ...(knoxAccessToken && { + 'X-KNOX-APITOKEN': knoxAccessToken, + }), + ...(customHeader ? customHeader : defaultHeaders), + }, + }); + + instance.interceptors.response.use((response) => response, handleKnoxError); + + return instance; +}; + +export const knoxAmsInstance = ({ region, knoxAccessToken, customHeader }: { region: string; knoxAccessToken?: string; customHeader?: object }) => { + const instance = axios.create({ + baseURL: `https://${region.toLowerCase()}-kcs-api.samsungknox.com`, + headers: { + ...(knoxAccessToken && { + 'X-KNOX-APITOKEN': knoxAccessToken, + }), + ...(customHeader ? customHeader : defaultHeaders), + }, + }); + + instance.interceptors.response.use((response) => response, handleKnoxError); + + return instance; +}; diff --git a/packages/knox-api/src/utils/knox-axios.ts b/packages/knox-api/src/utils/knox-axios.ts deleted file mode 100644 index c445b5d..0000000 --- a/packages/knox-api/src/utils/knox-axios.ts +++ /dev/null @@ -1,22 +0,0 @@ -import axios from 'axios'; -import { handleKnoxError } from '~/errors'; - -const defaultHeaders = { - 'content-type': 'application/json', -}; - -export const knoxDefaultAxios = ({ region, knoxAccessToken, customHeader }: { region: string; knoxAccessToken?: string; customHeader?: object }) => { - const instance = axios.create({ - baseURL: `https://${region.toLowerCase()}-kcs-api.samsungknox.com`, - headers: { - ...(knoxAccessToken && { - 'X-KNOX-APITOKEN': knoxAccessToken, - }), - ...(customHeader ? customHeader : defaultHeaders), - }, - }); - - instance.interceptors.response.use((response) => response, handleKnoxError); - - return instance; -};