refactor service routes in new file

This commit is contained in:
Simon Larsen
2023-09-11 19:53:47 +05:30
parent 936cb7eb74
commit 16367d54bc
16 changed files with 69 additions and 120 deletions

31
Common/ServiceRoute.ts Normal file
View File

@@ -0,0 +1,31 @@
import Route from "./Types/API/Route";
export const homeRoute: Route = new Route('/');
export const DashboardApiRoute: Route = new Route('/api');
export const IdentityRoute: Route = new Route('/identity');
export const FileRoute: Route = new Route('/file');
export const StatusPageRoute: Route = new Route('/status-page');
export const LinkShortenerRoute: Route = new Route('/l');
export const DashboardRoute: Route = new Route('/dashboard');
export const IntegrationRoute: Route = new Route('/integration');
export const NotificationRoute: Route = new Route('/notification');
export const HelmRoute: Route = new Route('/helm-chart');
export const AccountsRoute: Route = new Route('/accounts');
export const WorkflowRoute: Route = new Route('/workflow');
export const ApiReferenceRoute: Route = new Route('/api-reference');
export const AdminDashboardRoute: Route = new Route('/admin');
export const ProbeApiRoute: Route = new Route('/probe-api');

View File

@@ -15,7 +15,7 @@ import { JSONObject } from 'Common/Types/JSON';
import NotificationMiddleware from '../Middleware/NotificationMiddleware';
import OneUptimeDate from 'Common/Types/Date';
import URL from 'Common/Types/API/URL';
import { DashboardRoute } from '../EnvironmentConfig';
import { DashboardRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import UserNotificationStatus from 'Common/Types/UserNotification/UserNotificationStatus';
import Hostname from 'Common/Types/API/Hostname';

View File

@@ -6,7 +6,7 @@ import URL from 'Common/Types/API/URL';
import GlobalConfigService from './Services/GlobalConfigService';
import BadDataException from 'Common/Types/Exception/BadDataException';
import GlobalConfig from 'Model/Models/GlobalConfig';
import { AccountsRoute, DashboardRoute } from './EnvironmentConfig';
import { AccountsRoute, DashboardRoute } from 'Common/ServiceRoute';
export default class DatabaseConfig {
public static async getFromGlobalConfig(key: string): Promise<JSONValue> {

View File

@@ -126,31 +126,6 @@ export const ShouldRedisTlsEnable: boolean = Boolean(
RedisTlsCa || RedisTlsSentinelMode
);
export const DashboardApiRoute: Route = new Route('/dashboard-api');
export const IdentityRoute: Route = new Route('/identity');
export const FileRoute: Route = new Route(process.env['FILE_ROUTE'] || '/file');
export const StatusPageRoute: Route = new Route('/status-page');
export const LinkShortenerRoute: Route = new Route('/l');
export const DashboardRoute: Route = new Route('/dashboard');
export const IntegrationRoute: Route = new Route('/integration');
export const NotificationRoute: Route = new Route('/notification');
export const HelmRoute: Route = new Route('/helm-chart');
export const AccountsRoute: Route = new Route('/accounts');
export const WorkflowRoute: Route = new Route('/workflow');
export const ApiReferenceRoute: Route = new Route('/api-reference');
export const AdminDashboardRoute: Route = new Route('/admin-dashboard');
export const IsProduction: boolean =
process.env['ENVIRONMENT'] === 'production';

View File

@@ -26,8 +26,8 @@ import SortOrder from 'Common/Types/Database/SortOrder';
import {
EncryptionSecret,
WorkflowHostname,
WorkflowRoute,
} from '../EnvironmentConfig';
import { WorkflowRoute } from 'Common/ServiceRoute';
import HashedString from 'Common/Types/HashedString';
import UpdateByID from '../Types/Database/UpdateByID';
import Columns from 'Common/Types/Database/Columns';

View File

@@ -4,7 +4,7 @@ import DatabaseService, { OnCreate } from './DatabaseService';
import CreateBy from '../Types/Database/CreateBy';
import Text from 'Common/Types/Text';
import URL from 'Common/Types/API/URL';
import { LinkShortenerRoute } from '../EnvironmentConfig';
import { LinkShortenerRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import Route from 'Common/Types/API/Route';
import Hostname from 'Common/Types/API/Hostname';

View File

@@ -10,7 +10,7 @@ import MailService from './MailService';
import EmailTemplateType from 'Common/Types/Email/EmailTemplateType';
import URL from 'Common/Types/API/URL';
import logger from '../Utils/Logger';
import { FileRoute } from '../EnvironmentConfig';
import { FileRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import Hostname from 'Common/Types/API/Hostname';
import Protocol from 'Common/Types/API/Protocol';

View File

@@ -8,7 +8,7 @@ import MailService from './MailService';
import EmailTemplateType from 'Common/Types/Email/EmailTemplateType';
import { LIMIT_PER_PROJECT } from 'Common/Types/Database/LimitMax';
import URL from 'Common/Types/API/URL';
import { FileRoute } from '../EnvironmentConfig';
import { FileRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import logger from '../Utils/Logger';
import StatusPage from 'Model/Models/StatusPage';

View File

@@ -15,7 +15,8 @@ import ObjectID from 'Common/Types/ObjectID';
import QueryHelper from '../Types/Database/QueryHelper';
import LIMIT_MAX from 'Common/Types/Database/LimitMax';
import ProjectService from './ProjectService';
import { DashboardRoute, IsBillingEnabled } from '../EnvironmentConfig';
import { IsBillingEnabled } from '../EnvironmentConfig';
import { DashboardRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import BillingService from './BillingService';
import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan';

View File

@@ -21,7 +21,7 @@ import EmailMessage from 'Common/Types/Email/EmailMessage';
import SMS from 'Common/Types/SMS/SMS';
import Incident from 'Model/Models/Incident';
import URL from 'Common/Types/API/URL';
import { DashboardApiRoute } from '../EnvironmentConfig';
import { DashboardApiRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import ShortLinkService from './ShortLinkService';
import ShortLink from 'Model/Models/ShortLink';

View File

@@ -8,7 +8,7 @@ import MailService from './MailService';
import UpdateBy from '../Types/Database/UpdateBy';
import LIMIT_MAX from 'Common/Types/Database/LimitMax';
import EmailTemplateType from 'Common/Types/Email/EmailTemplateType';
import { AccountsRoute } from '../EnvironmentConfig';
import { AccountsRoute } from 'Common/ServiceRoute';
import DatabaseConfig from '../DatabaseConfig';
import logger from '../Utils/Logger';
import URL from 'Common/Types/API/URL';

View File

@@ -5,7 +5,7 @@ import ComponentLoader from '../ComponentLoader/ComponentLoader';
import MarkdownViewer from '../Markdown.tsx/MarkdownViewer';
import Route from 'Common/Types/API/Route';
import URL from 'Common/Types/API/URL';
import { DOMAIN, HOME_URL, HTTP_PROTOCOL } from '../../Config';
import { HOST, HOME_URL, HTTP_PROTOCOL } from '../../Config';
import ObjectID from 'Common/Types/ObjectID';
import HTTPResponse from 'Common/Types/API/HTTPResponse';
import useAsyncEffect from 'use-async-effect';
@@ -34,7 +34,7 @@ const DocumentationViewer: FunctionComponent<ComponentProps> = (
try {
setIsLoading(true);
const body: HTTPResponse<any> = await API.get(
new URL(HTTP_PROTOCOL, DOMAIN, props.documentationLink),
new URL(HTTP_PROTOCOL, HOST, props.documentationLink),
{},
{
Accept: 'text/plain',

View File

@@ -1,6 +1,6 @@
import Hostname from 'Common/Types/API/Hostname';
import Protocol from 'Common/Types/API/Protocol';
import Route from 'Common/Types/API/Route';
import { AccountsRoute, AdminDashboardRoute, ApiReferenceRoute, DashboardApiRoute, DashboardRoute, FileRoute, HelmRoute, IdentityRoute, IntegrationRoute, NotificationRoute, ProbeApiRoute, StatusPageRoute, WorkflowRoute, homeRoute } from 'Common/ServiceRoute';
import Version from 'Common/Types/Version';
import URL from 'Common/Types/API/URL';
import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan';
@@ -17,59 +17,32 @@ export const env: Function = (key: string): string => {
export const HTTP_PROTOCOL: Protocol =
env('HTTP_PROTOCOL') === 'http' ? Protocol.HTTP : Protocol.HTTPS;
export const DOMAIN: string = env('DOMAIN') || '';
export const HOST: string = env('DOMAIN') || '';
export const BILLING_ENABLED: boolean = env('BILLING_ENABLED') === 'true';
export const BILLING_PUBLIC_KEY: string = env('BILLING_PUBLIC_KEY') || '';
export const DISABLE_SIGNUP: boolean = env('DISABLE_SIGNUP') === 'true';
export const VERSION: Version = new Version(env('VERSION') || '1.0.0');
export const DASHBOARD_API_ROUTE: Route = new Route(env('DASHBOARD_API_ROUTE'));
export const PROBE_API_ROUTE: Route = new Route(env('PROBE_API_ROUTE'));
export const IDENTITY_ROUTE: Route = new Route(env('IDENTITY_ROUTE'));
export const WORKFLOW_ROUTE: Route = new Route(env('WORKFLOW_ROUTE'));
export const FILE_ROUTE: Route = new Route(env('FILE_ROUTE'));
export const NOTIFICATION_ROUTE: Route = new Route(env('NOTIFICATION_ROUTE'));
export const STATUS_PAGE_ROUTE: Route = new Route(env('STATUS_PAGE_ROUTE'));
export const DASHBOARD_ROUTE: Route = new Route(env('DASHBOARD_ROUTE'));
export const INTEGRATION_ROUTE: Route = new Route(env('INTEGRATION_ROUTE'));
export const HELM_ROUTE: Route = new Route(env('HELMCHART_ROUTE'));
export const API_DOCS_ROUTE: Route = new Route(env('API_REFERENCE_ROUTE'));
export const ADMIN_DASHBOARD_ROUTE: Route = new Route(
env('ADMIN_DASHBOARD_ROUTE')
);
export const ACCOUNTS_ROUTE: Route = new Route(env('ACCOUNTS_ROUTE'));
export const HOME_ROUTE: Route = new Route(env('HOME_ROUTE'));
export const DASHBOARD_API_HOSTNAME: Hostname = Hostname.fromString(
env('DOMAIN')
HOST
);
export const IDENTITY_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
export const NOTIFICATION_HOSTNAME: Hostname = Hostname.fromString(
env('DOMAIN')
HOST
);
export const DASHBOARD_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
export const INTEGRATION_HOSTNAME: Hostname = Hostname.fromString(
env('DOMAIN')
HOST
);
export const STATUS_PAGE_HOSTNAME: Hostname = Hostname.fromString(
env('DOMAIN')
HOST
);
export const WORKFLOW_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
@@ -81,7 +54,7 @@ export const HELM_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
export const API_DOCS_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
export const ADMIN_DASHBOARD_HOSTNAME: Hostname = Hostname.fromString(
env('DOMAIN')
HOST
);
export const ACCOUNTS_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
export const HOME_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
@@ -91,72 +64,72 @@ export const FILE_HOSTNAME: Hostname = Hostname.fromString(env('DOMAIN'));
export const DASHBOARD_API_URL: URL = new URL(
HTTP_PROTOCOL,
DASHBOARD_API_HOSTNAME,
DASHBOARD_API_ROUTE
DashboardApiRoute
);
export const IDENTITY_URL: URL = new URL(
HTTP_PROTOCOL,
IDENTITY_HOSTNAME,
IDENTITY_ROUTE
IdentityRoute
);
export const NOTIFICATION_URL: URL = new URL(
HTTP_PROTOCOL,
NOTIFICATION_HOSTNAME,
NOTIFICATION_ROUTE
NotificationRoute
);
export const WORKFLOW_URL: URL = new URL(
HTTP_PROTOCOL,
WORKFLOW_HOSTNAME,
WORKFLOW_ROUTE
WorkflowRoute
);
export const PROBE_API_URL: URL = new URL(
HTTP_PROTOCOL,
PROBE_API_HOSTNAME,
PROBE_API_ROUTE
ProbeApiRoute
);
export const STATUS_PAGE_URL: URL = new URL(
HTTP_PROTOCOL,
STATUS_PAGE_HOSTNAME,
STATUS_PAGE_ROUTE
StatusPageRoute
);
export const FILE_URL: URL = new URL(HTTP_PROTOCOL, FILE_HOSTNAME, FILE_ROUTE);
export const FILE_URL: URL = new URL(HTTP_PROTOCOL, FILE_HOSTNAME, FileRoute);
export const DASHBOARD_URL: URL = new URL(
HTTP_PROTOCOL,
DASHBOARD_HOSTNAME,
DASHBOARD_ROUTE
DashboardRoute
);
export const INTEGRATION_URL: URL = new URL(
HTTP_PROTOCOL,
INTEGRATION_HOSTNAME,
INTEGRATION_ROUTE
IntegrationRoute
);
export const HELM_URL: URL = new URL(HTTP_PROTOCOL, HELM_HOSTNAME, HELM_ROUTE);
export const HELM_URL: URL = new URL(HTTP_PROTOCOL, HELM_HOSTNAME, HelmRoute);
export const API_DOCS_URL: URL = new URL(
HTTP_PROTOCOL,
API_DOCS_HOSTNAME,
API_DOCS_ROUTE
ApiReferenceRoute
);
export const ADMIN_DASHBOARD_URL: URL = new URL(
HTTP_PROTOCOL,
ADMIN_DASHBOARD_HOSTNAME,
ADMIN_DASHBOARD_ROUTE
AdminDashboardRoute
);
export const ACCOUNTS_URL: URL = new URL(
HTTP_PROTOCOL,
ACCOUNTS_HOSTNAME,
ACCOUNTS_ROUTE
AccountsRoute
);
export const HOME_URL: URL = new URL(HTTP_PROTOCOL, HOME_HOSTNAME, HOME_ROUTE);
export const HOME_URL: URL = new URL(HTTP_PROTOCOL, HOME_HOSTNAME, homeRoute);
export const SubscriptionPlans: Array<SubscriptionPlan> =
SubscriptionPlan.getSubscriptionPlans(getAllEnvVars());

View File

@@ -2,7 +2,7 @@ import React from 'react';
import Footer from 'CommonUI/src/Components/Footer/Footer';
import URL from 'Common/Types/API/URL';
import API from 'Common/Utils/API';
import { DOMAIN, HTTP_PROTOCOL } from 'CommonUI/src/Config';
import { HOST, HTTP_PROTOCOL } from 'CommonUI/src/Config';
import { JSONObject } from 'Common/Types/JSON';
import BadDataException from 'Common/Types/Exception/BadDataException';
import ConfirmModal from 'CommonUI/src/Components/Modal/ConfirmModal';
@@ -66,7 +66,7 @@ const DashboardFooter: () => JSX.Element = () => {
appName: string
): Promise<JSONObject> => {
const response: HTTPResponse<JSONObject> = await API.get<JSONObject>(
URL.fromString(`${HTTP_PROTOCOL}/${DOMAIN}${appName}/version`)
URL.fromString(`${HTTP_PROTOCOL}/${HOST}${appName}/version`)
);
if (response.data) {

View File

@@ -2,7 +2,7 @@ import URL from 'Common/Types/API/URL';
import ObjectID from 'Common/Types/ObjectID';
import Card from 'CommonUI/src/Components/Card/Card';
import Link from 'CommonUI/src/Components/Link/Link';
import { DOMAIN, HTTP_PROTOCOL } from 'CommonUI/src/Config';
import { HOST, HTTP_PROTOCOL } from 'CommonUI/src/Config';
import React, { FunctionComponent, ReactElement } from 'react';
export interface ComponentProps {
@@ -22,12 +22,12 @@ const IncomingMonitorLink: FunctionComponent<ComponentProps> = (
this URL{' '}
<Link
openInNewTab={true}
to={new URL(HTTP_PROTOCOL, DOMAIN)
to={new URL(HTTP_PROTOCOL, HOST)
.addRoute('/heartbeat')
.addRoute(`/${props.modelId.toString()}`)}
>
<span>
{new URL(HTTP_PROTOCOL, DOMAIN)
{new URL(HTTP_PROTOCOL, HOST)
.addRoute('/heartbeat')
.addRoute(`/${props.modelId.toString()}`)
.toString()}

View File

@@ -16,21 +16,6 @@ x-common-variables: &common-variables
x-common-ui-variables: &common-ui-variables
<<: *common-variables
REALTIME_ROUTE: ${REALTIME_ROUTE}
NOTIFICATION_ROUTE: ${NOTIFICATION_ROUTE}
DASHBOARD_ROUTE: ${DASHBOARD_ROUTE}
ADMIN_DASHBOARD_ROUTE: ${ADMIN_DASHBOARD_ROUTE}
DASHBOARD_API_ROUTE: ${DASHBOARD_API_ROUTE}
PROBE_API_ROUTE: ${PROBE_API_ROUTE}
DATA_INGESTOR_ROUTE: ${DATA_INGESTOR_ROUTE}
ACCOUNTS_ROUTE: ${ACCOUNTS_ROUTE}
HOME_ROUTE: ${HOME_ROUTE}
HELMCHARTS_ROUTE: ${HELMCHARTS_ROUTE}
API_REFERENCE_ROUTE: ${API_REFERENCE_ROUTE}
IDENTITY_ROUTE: ${IDENTITY_ROUTE}
WORKFLOW_ROUTE: ${WORKFLOW_ROUTE}
FILE_ROUTE: ${FILE_ROUTE}
STATUS_PAGE_ROUTE: ${STATUS_PAGE_ROUTE}
IS_SERVER: false
STATUS_PAGE_CNAME_RECORD: ${STATUS_PAGE_CNAME_RECORD}
@@ -75,22 +60,6 @@ x-common-server-variables: &common-server-variables
BILLING_PUBLIC_KEY: ${BILLING_PUBLIC_KEY}
BILLING_ENABLED: ${BILLING_ENABLED}
REALTIME_ROUTE: ${REALTIME_ROUTE}
NOTIFICATION_ROUTE: ${NOTIFICATION_ROUTE}
DASHBOARD_ROUTE: ${DASHBOARD_ROUTE}
ADMIN_DASHBOARD_ROUTE: ${ADMIN_DASHBOARD_ROUTE}
DASHBOARD_API_ROUTE: ${DASHBOARD_API_ROUTE}
PROBE_API_ROUTE: ${PROBE_API_ROUTE}
DATA_INGESTOR_ROUTE: ${DATA_INGESTOR_ROUTE}
ACCOUNTS_ROUTE: ${ACCOUNTS_ROUTE}
HOME_ROUTE: ${HOME_ROUTE}
HELMCHARTS_ROUTE: ${HELMCHARTS_ROUTE}
API_REFERENCE_ROUTE: ${API_REFERENCE_ROUTE}
IDENTITY_ROUTE: ${IDENTITY_ROUTE}
FILE_ROUTE: ${FILE_ROUTE}
WORKFLOW_ROUTE: ${WORKFLOW_ROUTE}
STATUS_PAGE_ROUTE: ${STATUS_PAGE_ROUTE}
CLICKHOUSE_USER: ${CLICKHOUSE_USER}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
CLICKHOUSE_DATABASE: ${CLICKHOUSE_DATABASE}