diff --git a/packages/backend/src/controllers/api/v1/admin/api-tokens/create-api-token.ee.js b/packages/backend/src/controllers/api/v1/admin/api-tokens/create-api-token.ee.js index 1a763c78..2480e185 100644 --- a/packages/backend/src/controllers/api/v1/admin/api-tokens/create-api-token.ee.js +++ b/packages/backend/src/controllers/api/v1/admin/api-tokens/create-api-token.ee.js @@ -5,7 +5,7 @@ export default async (request, response) => { const apiToken = await ApiToken.query().insertAndFetch({}); renderObject(response, apiToken, { - serializer: 'AdminApiToken', + serializer: 'AdminApiTokenFull', status: 201, }); }; diff --git a/packages/backend/src/serializers/admin/api-token-full.ee.js b/packages/backend/src/serializers/admin/api-token-full.ee.js new file mode 100644 index 00000000..942784ae --- /dev/null +++ b/packages/backend/src/serializers/admin/api-token-full.ee.js @@ -0,0 +1,10 @@ +const adminApiTokenFullSerializer = (apiToken) => { + return { + id: apiToken.id, + token: apiToken.token, + createdAt: apiToken.createdAt.getTime(), + updatedAt: apiToken.updatedAt.getTime(), + }; +}; + +export default adminApiTokenFullSerializer; diff --git a/packages/backend/src/serializers/admin/api-token-full.ee.test.js b/packages/backend/src/serializers/admin/api-token-full.ee.test.js new file mode 100644 index 00000000..56aca0c7 --- /dev/null +++ b/packages/backend/src/serializers/admin/api-token-full.ee.test.js @@ -0,0 +1,24 @@ +import { describe, it, expect, beforeEach } from 'vitest'; +import adminApiTokenFullSerializer from './api-token-full.ee.js'; +import { createApiToken } from '../../../test/factories/api-token.js'; + +describe('adminApiTokenFullSerializer', () => { + let apiToken; + + beforeEach(async () => { + apiToken = await createApiToken(); + }); + + it('should return api token data', async () => { + const expectedPayload = { + id: apiToken.id, + token: apiToken.token, + createdAt: apiToken.createdAt.getTime(), + updatedAt: apiToken.updatedAt.getTime(), + }; + + expect(adminApiTokenFullSerializer(apiToken)).toStrictEqual( + expectedPayload + ); + }); +}); diff --git a/packages/backend/src/serializers/admin/api-token.ee.js b/packages/backend/src/serializers/admin/api-token.ee.js index 40c4c52b..ca7e50d5 100644 --- a/packages/backend/src/serializers/admin/api-token.ee.js +++ b/packages/backend/src/serializers/admin/api-token.ee.js @@ -1,7 +1,10 @@ const adminApiTokenSerializer = (apiToken) => { return { id: apiToken.id, - token: apiToken.token, + token: + apiToken.token.substring(0, 4) + + '...' + + apiToken.token.substring(apiToken.token.length - 4), createdAt: apiToken.createdAt.getTime(), updatedAt: apiToken.updatedAt.getTime(), }; diff --git a/packages/backend/src/serializers/admin/api-token.ee.test.js b/packages/backend/src/serializers/admin/api-token.ee.test.js index 9ca7fd40..79adeb28 100644 --- a/packages/backend/src/serializers/admin/api-token.ee.test.js +++ b/packages/backend/src/serializers/admin/api-token.ee.test.js @@ -12,7 +12,10 @@ describe('adminApiTokenSerializer', () => { it('should return api token data', async () => { const expectedPayload = { id: apiToken.id, - token: apiToken.token, + token: + apiToken.token.substring(0, 4) + + '...' + + apiToken.token.substring(apiToken.token.length - 4), createdAt: apiToken.createdAt.getTime(), updatedAt: apiToken.updatedAt.getTime(), }; diff --git a/packages/backend/src/serializers/index.js b/packages/backend/src/serializers/index.js index 96dbebeb..11e9755f 100644 --- a/packages/backend/src/serializers/index.js +++ b/packages/backend/src/serializers/index.js @@ -4,6 +4,7 @@ import permissionSerializer from './permission.js'; import adminSamlAuthProviderSerializer from './admin-saml-auth-provider.ee.js'; import adminTemplateSerializer from './admin/template.ee.js'; import adminApiTokenSerializer from './admin/api-token.ee.js'; +import adminApiTokenFullSerializer from './admin/api-token-full.ee.js'; import templateSerializer from './template.ee.js'; import samlAuthProviderSerializer from './saml-auth-provider.ee.js'; import samlAuthProviderRoleMappingSerializer from './role-mapping.ee.js'; @@ -32,6 +33,7 @@ const serializers = { AdminSamlAuthProvider: adminSamlAuthProviderSerializer, AdminTemplate: adminTemplateSerializer, AdminApiToken: adminApiTokenSerializer, + AdminApiTokenFull: adminApiTokenFullSerializer, Template: templateSerializer, SamlAuthProvider: samlAuthProviderSerializer, RoleMapping: samlAuthProviderRoleMappingSerializer,