diff --git a/packages/backend/src/controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.test.js b/packages/backend/src/controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.test.js deleted file mode 100644 index e9d18222..00000000 --- a/packages/backend/src/controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.test.js +++ /dev/null @@ -1,52 +0,0 @@ -import { vi, describe, it, expect, beforeEach } from 'vitest'; -import request from 'supertest'; -import Crypto from 'crypto'; -import app from '../../../../../app.js'; -import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js'; -import { createUser } from '../../../../../../test/factories/user.js'; -import getAdminAppAuthClientMock from '../../../../../../test/mocks/rest/api/v1/admin/app-auth-clients/get-app-auth-client.js'; -import { createAppAuthClient } from '../../../../../../test/factories/app-auth-client.js'; -import { createRole } from '../../../../../../test/factories/role.js'; -import * as license from '../../../../../helpers/license.ee.js'; - -describe('GET /api/v1/admin/app-auth-clients/:appAuthClientId', () => { - let currentUser, currentUserRole, currentAppAuthClient, token; - - describe('with valid license key', () => { - beforeEach(async () => { - vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true); - - currentUserRole = await createRole({ key: 'admin' }); - currentUser = await createUser({ roleId: currentUserRole.id }); - currentAppAuthClient = await createAppAuthClient(); - - token = createAuthTokenByUserId(currentUser.id); - }); - - it('should return specified app auth client info', async () => { - const response = await request(app) - .get(`/api/v1/admin/app-auth-clients/${currentAppAuthClient.id}`) - .set('Authorization', token) - .expect(200); - - const expectedPayload = getAdminAppAuthClientMock(currentAppAuthClient); - expect(response.body).toEqual(expectedPayload); - }); - - it('should return not found response for not existing app auth client UUID', async () => { - const notExistingAppAuthClientUUID = Crypto.randomUUID(); - - await request(app) - .get(`/api/v1/admin/app-auth-clients/${notExistingAppAuthClientUUID}`) - .set('Authorization', token) - .expect(404); - }); - - it('should return bad request response for invalid UUID', async () => { - await request(app) - .get('/api/v1/admin/app-auth-clients/invalidAppAuthClientUUID') - .set('Authorization', token) - .expect(400); - }); - }); -}); diff --git a/packages/backend/src/controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.js b/packages/backend/src/controllers/api/v1/admin/apps/get-auth-client.ee.js similarity index 88% rename from packages/backend/src/controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.js rename to packages/backend/src/controllers/api/v1/admin/apps/get-auth-client.ee.js index 30cd7338..c43ac23e 100644 --- a/packages/backend/src/controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.js +++ b/packages/backend/src/controllers/api/v1/admin/apps/get-auth-client.ee.js @@ -4,6 +4,7 @@ import AppAuthClient from '../../../../../models/app-auth-client.js'; export default async (request, response) => { const appAuthClient = await AppAuthClient.query() .findById(request.params.appAuthClientId) + .where({ app_key: request.params.appKey }) .throwIfNotFound(); renderObject(response, appAuthClient); diff --git a/packages/backend/src/controllers/api/v1/admin/apps/get-auth-client.ee.test.js b/packages/backend/src/controllers/api/v1/admin/apps/get-auth-client.ee.test.js new file mode 100644 index 00000000..f9f6c7ee --- /dev/null +++ b/packages/backend/src/controllers/api/v1/admin/apps/get-auth-client.ee.test.js @@ -0,0 +1,55 @@ +import { vi, describe, it, expect, beforeEach } from 'vitest'; +import request from 'supertest'; +import Crypto from 'crypto'; +import app from '../../../../../app.js'; +import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js'; +import { createUser } from '../../../../../../test/factories/user.js'; +import { createRole } from '../../../../../../test/factories/role.js'; +import getAppAuthClientMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/get-auth-client.js'; +import { createAppAuthClient } from '../../../../../../test/factories/app-auth-client.js'; +import * as license from '../../../../../helpers/license.ee.js'; + +describe('GET /api/v1/admin/apps/:appKey/auth-clients/:appAuthClientId', () => { + let currentUser, adminRole, currentAppAuthClient, token; + + beforeEach(async () => { + vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true); + + adminRole = await createRole({ key: 'admin' }); + currentUser = await createUser({ roleId: adminRole.id }); + + currentAppAuthClient = await createAppAuthClient({ + appKey: 'deepl', + }); + + token = createAuthTokenByUserId(currentUser.id); + }); + + it('should return specified app auth client', async () => { + const response = await request(app) + .get(`/api/v1/admin/apps/deepl/auth-clients/${currentAppAuthClient.id}`) + .set('Authorization', token) + .expect(200); + + const expectedPayload = getAppAuthClientMock(currentAppAuthClient); + expect(response.body).toEqual(expectedPayload); + }); + + it('should return not found response for not existing app auth client ID', async () => { + const notExistingAppAuthClientUUID = Crypto.randomUUID(); + + await request(app) + .get( + `/api/v1/admin/apps/deepl/auth-clients/${notExistingAppAuthClientUUID}` + ) + .set('Authorization', token) + .expect(404); + }); + + it('should return bad request response for invalid UUID', async () => { + await request(app) + .get('/api/v1/admin/apps/deepl/auth-clients/invalidAppAuthClientUUID') + .set('Authorization', token) + .expect(400); + }); +}); diff --git a/packages/backend/src/routes/api/v1/admin/app-auth-clients.ee.js b/packages/backend/src/routes/api/v1/admin/app-auth-clients.ee.js deleted file mode 100644 index 961b6616..00000000 --- a/packages/backend/src/routes/api/v1/admin/app-auth-clients.ee.js +++ /dev/null @@ -1,18 +0,0 @@ -import { Router } from 'express'; -import asyncHandler from 'express-async-handler'; -import { authenticateUser } from '../../../../helpers/authentication.js'; -import { authorizeAdmin } from '../../../../helpers/authorization.js'; -import { checkIsEnterprise } from '../../../../helpers/check-is-enterprise.js'; -import getAdminAppAuthClientAction from '../../../../controllers/api/v1/admin/app-auth-clients/get-app-auth-client.ee.js'; - -const router = Router(); - -router.get( - '/:appAuthClientId', - authenticateUser, - authorizeAdmin, - checkIsEnterprise, - asyncHandler(getAdminAppAuthClientAction) -); - -export default router; diff --git a/packages/backend/src/routes/api/v1/admin/apps.ee.js b/packages/backend/src/routes/api/v1/admin/apps.ee.js index 0994d054..ef3d97c5 100644 --- a/packages/backend/src/routes/api/v1/admin/apps.ee.js +++ b/packages/backend/src/routes/api/v1/admin/apps.ee.js @@ -4,7 +4,7 @@ import { authenticateUser } from '../../../../helpers/authentication.js'; import { authorizeAdmin } from '../../../../helpers/authorization.js'; import { checkIsEnterprise } from '../../../../helpers/check-is-enterprise.js'; import getAuthClientsAction from '../../../../controllers/api/v1/admin/apps/get-auth-clients.ee.js'; -import getRoleAction from '../../../../controllers/api/v1/admin/roles/get-role.ee.js'; +import getAuthClientAction from '../../../../controllers/api/v1/admin/apps/get-auth-client.ee.js'; const router = Router(); @@ -21,7 +21,7 @@ router.get( authenticateUser, authorizeAdmin, checkIsEnterprise, - asyncHandler(getRoleAction) + asyncHandler(getAuthClientAction) ); export default router; diff --git a/packages/backend/src/routes/index.js b/packages/backend/src/routes/index.js index 5ded51ac..a7f8c30a 100644 --- a/packages/backend/src/routes/index.js +++ b/packages/backend/src/routes/index.js @@ -18,7 +18,6 @@ import adminSamlAuthProvidersRouter from './api/v1/admin/saml-auth-providers.ee. import rolesRouter from './api/v1/admin/roles.ee.js'; import permissionsRouter from './api/v1/admin/permissions.ee.js'; import adminUsersRouter from './api/v1/admin/users.ee.js'; -import adminAppAuthClientsRouter from './api/v1/admin/app-auth-clients.ee.js'; const router = Router(); @@ -41,6 +40,5 @@ router.use('/api/v1/admin/users', adminUsersRouter); router.use('/api/v1/admin/roles', rolesRouter); router.use('/api/v1/admin/permissions', permissionsRouter); router.use('/api/v1/admin/saml-auth-providers', adminSamlAuthProvidersRouter); -router.use('/api/v1/admin/app-auth-clients', adminAppAuthClientsRouter); export default router; diff --git a/packages/backend/test/mocks/rest/api/v1/admin/app-auth-clients/get-app-auth-client.js b/packages/backend/test/mocks/rest/api/v1/admin/apps/get-auth-client.js similarity index 76% rename from packages/backend/test/mocks/rest/api/v1/admin/app-auth-clients/get-app-auth-client.js rename to packages/backend/test/mocks/rest/api/v1/admin/apps/get-auth-client.js index 7d4446d5..3789ffe7 100644 --- a/packages/backend/test/mocks/rest/api/v1/admin/app-auth-clients/get-app-auth-client.js +++ b/packages/backend/test/mocks/rest/api/v1/admin/apps/get-auth-client.js @@ -1,9 +1,9 @@ -const getAdminAppAuthClientMock = (appAuthClient) => { +const getAppAuthClientMock = (appAuthClient) => { return { data: { - appConfigId: appAuthClient.appConfigId, name: appAuthClient.name, id: appAuthClient.id, + appConfigId: appAuthClient.appConfigId, active: appAuthClient.active, }, meta: { @@ -16,4 +16,4 @@ const getAdminAppAuthClientMock = (appAuthClient) => { }; }; -export default getAdminAppAuthClientMock; +export default getAppAuthClientMock;