From 2a3959082cf396fe6300a6f4bf597a263ea9d7c9 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Mon, 11 Mar 2024 09:28:40 +0100 Subject: [PATCH] refactor: proxy/frontend api in feature oriented architecture (#6487) --- .../index.ts => proxy/proxy-controller.ts} | 18 +++++++++--------- .../{services => proxy}/proxy-service.test.ts | 2 +- src/lib/{services => proxy}/proxy-service.ts | 6 +++--- src/lib/routes/admin-api/api-token.ts | 2 +- src/lib/routes/index.ts | 2 +- src/lib/services/index.ts | 2 +- src/lib/types/services.ts | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) rename src/lib/{routes/proxy-api/index.ts => proxy/proxy-controller.ts} (95%) rename src/lib/{services => proxy}/proxy-service.test.ts (96%) rename src/lib/{services => proxy}/proxy-service.ts (97%) diff --git a/src/lib/routes/proxy-api/index.ts b/src/lib/proxy/proxy-controller.ts similarity index 95% rename from src/lib/routes/proxy-api/index.ts rename to src/lib/proxy/proxy-controller.ts index 395ed66885f..fd8ac1d68e2 100644 --- a/src/lib/routes/proxy-api/index.ts +++ b/src/lib/proxy/proxy-controller.ts @@ -1,8 +1,8 @@ import { Request, Response } from 'express'; -import Controller from '../controller'; -import { IUnleashConfig, IUnleashServices, NONE } from '../../types'; -import { Logger } from '../../logger'; -import { IApiUser } from '../../types/api-user'; +import Controller from '../routes/controller'; +import { IUnleashConfig, IUnleashServices, NONE } from '../types'; +import { Logger } from '../logger'; +import { IApiUser } from '../types/api-user'; import { ClientMetricsSchema, createRequestSchema, @@ -13,12 +13,12 @@ import { ProxyFeatureSchema, proxyFeaturesSchema, ProxyFeaturesSchema, -} from '../../openapi'; +} from '../openapi'; import { Context } from 'unleash-client'; -import { enrichContextWithIp } from '../../proxy'; -import { corsOriginMiddleware } from '../../middleware'; -import NotImplementedError from '../../error/not-implemented-error'; -import NotFoundError from '../../error/notfound-error'; +import { enrichContextWithIp } from './index'; +import { corsOriginMiddleware } from '../middleware'; +import NotImplementedError from '../error/not-implemented-error'; +import NotFoundError from '../error/notfound-error'; import rateLimit from 'express-rate-limit'; import { minutesToMilliseconds } from 'date-fns'; import isEqual from 'lodash.isequal'; diff --git a/src/lib/services/proxy-service.test.ts b/src/lib/proxy/proxy-service.test.ts similarity index 96% rename from src/lib/services/proxy-service.test.ts rename to src/lib/proxy/proxy-service.test.ts index 922d454b5ba..adde792851b 100644 --- a/src/lib/services/proxy-service.test.ts +++ b/src/lib/proxy/proxy-service.test.ts @@ -1,5 +1,5 @@ import { ProxyService, Config } from './proxy-service'; -import { GlobalFrontendApiCache } from '../proxy/global-frontend-api-cache'; +import { GlobalFrontendApiCache } from './global-frontend-api-cache'; import { IApiUser } from '../types'; import { FeatureInterface } from 'unleash-client/lib/feature'; import noLogger from '../../test/fixtures/no-logger'; diff --git a/src/lib/services/proxy-service.ts b/src/lib/proxy/proxy-service.ts similarity index 97% rename from src/lib/services/proxy-service.ts rename to src/lib/proxy/proxy-service.ts index c10f4bd8d82..4c175aaea05 100644 --- a/src/lib/services/proxy-service.ts +++ b/src/lib/proxy/proxy-service.ts @@ -16,9 +16,9 @@ import { import { validateOrigins } from '../util'; import { BadDataError, InvalidTokenError } from '../error'; import { PROXY_REPOSITORY_CREATED } from '../metric-events'; -import { ProxyRepository } from '../proxy'; -import { FrontendApiRepository } from '../proxy/frontend-api-repository'; -import { GlobalFrontendApiCache } from '../proxy/global-frontend-api-cache'; +import { ProxyRepository } from './index'; +import { FrontendApiRepository } from './frontend-api-repository'; +import { GlobalFrontendApiCache } from './global-frontend-api-cache'; export type Config = Pick< IUnleashConfig, diff --git a/src/lib/routes/admin-api/api-token.ts b/src/lib/routes/admin-api/api-token.ts index c35c2c7c07d..cdf213cabea 100644 --- a/src/lib/routes/admin-api/api-token.ts +++ b/src/lib/routes/admin-api/api-token.ts @@ -41,7 +41,7 @@ import { emptyResponse, getStandardResponses, } from '../../openapi/util/standard-responses'; -import { ProxyService } from '../../services/proxy-service'; +import { ProxyService } from '../../proxy/proxy-service'; import { extractUserId, extractUsername } from '../../util'; import { OperationDeniedError } from '../../error'; diff --git a/src/lib/routes/index.ts b/src/lib/routes/index.ts index 8ee8951c705..2a52bb0f8fb 100644 --- a/src/lib/routes/index.ts +++ b/src/lib/routes/index.ts @@ -9,7 +9,7 @@ import { AdminApi } from './admin-api'; import ClientApi from './client-api'; import { HealthCheckController } from './health-check'; -import FrontendAPIController from './proxy-api'; +import FrontendAPIController from '../proxy/proxy-controller'; import EdgeController from './edge-api'; import { PublicInviteController } from './public-invite'; import { Db } from '../db/db'; diff --git a/src/lib/services/index.ts b/src/lib/services/index.ts index 9560ee15931..1c31212c5c7 100644 --- a/src/lib/services/index.ts +++ b/src/lib/services/index.ts @@ -31,7 +31,7 @@ import { OpenApiService } from './openapi-service'; import { ClientSpecService } from './client-spec-service'; import { PlaygroundService } from '../features/playground/playground-service'; import { GroupService } from './group-service'; -import { ProxyService } from './proxy-service'; +import { ProxyService } from '../proxy/proxy-service'; import EdgeService from './edge-service'; import PatService from './pat-service'; import { PublicSignupTokenService } from './public-signup-token-service'; diff --git a/src/lib/types/services.ts b/src/lib/types/services.ts index ed37265b16c..d514969f63c 100644 --- a/src/lib/types/services.ts +++ b/src/lib/types/services.ts @@ -28,7 +28,7 @@ import { OpenApiService } from '../services/openapi-service'; import { ClientSpecService } from '../services/client-spec-service'; import { PlaygroundService } from '../features/playground/playground-service'; import { GroupService } from '../services/group-service'; -import { ProxyService } from '../services/proxy-service'; +import { ProxyService } from '../proxy/proxy-service'; import EdgeService from '../services/edge-service'; import PatService from '../services/pat-service'; import { PublicSignupTokenService } from '../services/public-signup-token-service';