diff --git a/azion.config.mjs b/azion.config.mjs index 758d09228..0102aec00 100644 --- a/azion.config.mjs +++ b/azion.config.mjs @@ -318,30 +318,14 @@ const config = { } }, { - name: 'Route GraphQL Billing Queries to Manager Origin', - description: 'Routes GraphQL Billing queries to the Manager, updating the URI accordingly', - match: '^/graphql/billing', + name: 'API Version 4 Routing', + description: 'Directs API version 4 requests to the designated API origin for handling.', + match: '^/v4', behavior: { - forwardCookies: true, setOrigin: { - name: 'origin-manager', - type: 'single_origin' - }, - rewrite: '/billing/graphql' - } - }, - { - name: 'Route GraphQL Accounting Queries to Manager Origin', - description: - 'Routes GraphQL Accounting queries to the Manager, updating the URI accordingly', - match: '^/graphql/accounting', - behavior: { - forwardCookies: true, - setOrigin: { - name: 'origin-manager', + name: 'origin-api', type: 'single_origin' - }, - rewrite: '/accounting/graphql' + } } }, { diff --git a/cypress/e2mock/activity-history.cy.js b/cypress/e2mock/activity-history.cy.js index 3bb4ba0c5..71feaecf4 100644 --- a/cypress/e2mock/activity-history.cy.js +++ b/cypress/e2mock/activity-history.cy.js @@ -4,7 +4,7 @@ import selectors from '../support/selectors' describe('Activity History Spec', { tags: ['@dev2'] }, () => { beforeEach(() => { cy.login() - cy.intercept('POST', '/api/v3/events/graphql', { fixture: 'activity-history.json' }).as('activityHistoryApi') + cy.intercept('POST', 'v4/events/graphql', { fixture: 'activity-history.json' }).as('activityHistoryApi') cy.openProduct('Activity History') }) diff --git a/src/helpers/get-static-urls-by-environment.js b/src/helpers/get-static-urls-by-environment.js index 9afcfde0d..a3a66d042 100644 --- a/src/helpers/get-static-urls-by-environment.js +++ b/src/helpers/get-static-urls-by-environment.js @@ -14,12 +14,12 @@ const urls = { production: 'https://manager.azion.com/billing-subscriptions' }, playgroundMetrics: { - stage: 'https://stage-manager.azion.com/metrics/graphql', - production: 'https://manager.azion.com/metrics/graphql' + stage: 'https://stage-api.azion.com/v4/metrics/graphql', + production: 'https://api.azion.com/v4/metrics/graphql' }, playgroundEvents: { - stage: 'https://stage-manager.azion.com/events/graphql', - production: 'https://manager.azion.com/events/graphql' + stage: 'https://stage-api.azion.com/v4/events/graphql', + production: 'https://api.azion.com/v4/events/graphql' }, helpCenter: { stage: 'https://storage.googleapis.com/gcs-docs-help-center-stage/console/', diff --git a/src/services/axios/AxiosHttpClientAdapter.js b/src/services/axios/AxiosHttpClientAdapter.js index 3d8720a24..0b8403957 100644 --- a/src/services/axios/AxiosHttpClientAdapter.js +++ b/src/services/axios/AxiosHttpClientAdapter.js @@ -39,7 +39,7 @@ export const parseHttpResponse = (httpResponse) => { export class AxiosHttpClientAdapter { static async request( - { url, method, headers, body, signal }, + { url, method, headers, body, signal, baseURL }, axios = defaultApi(import.meta.env.VITE_PERSONAL_TOKEN) ) { let axiosResponse @@ -50,7 +50,8 @@ export class AxiosHttpClientAdapter { method: method, headers: headers, data: body, - signal + signal, + ...(baseURL && { baseURL: baseURL }) }) } catch (error) { const axiosError = error diff --git a/src/services/axios/AxiosHttpClientSignalDecorator.js b/src/services/axios/AxiosHttpClientSignalDecorator.js index 2f57c4205..cb1f29a30 100644 --- a/src/services/axios/AxiosHttpClientSignalDecorator.js +++ b/src/services/axios/AxiosHttpClientSignalDecorator.js @@ -5,13 +5,14 @@ export class AxiosHttpClientSignalDecorator { this.signal = signal } - async request({ url, method, headers, body }) { + async request({ url, method, headers, body, baseURL }) { return await AxiosHttpClientAdapter.request({ url, method, headers, body, - signal: this.signal + signal: this.signal, + baseURL }) } } diff --git a/src/services/axios/makeEventsApi.js b/src/services/axios/makeEventsApi.js index 12fffc470..7a79c1021 100644 --- a/src/services/axios/makeEventsApi.js +++ b/src/services/axios/makeEventsApi.js @@ -2,8 +2,7 @@ import axios from 'axios' const api = (personalToken) => { delete axios.defaults.headers.common['Authorization'] - const version = 'v3' - const baseURL = `api/${version}/events` + const baseURL = `v4/events` axios.defaults.headers.common['Accept'] = 'application/json' diff --git a/src/services/billing-services/list-payment-history-service.js b/src/services/billing-services/list-payment-history-service.js index df02b7d5d..96b525374 100644 --- a/src/services/billing-services/list-payment-history-service.js +++ b/src/services/billing-services/list-payment-history-service.js @@ -3,7 +3,6 @@ import { makePaymentBaseUrl } from './make-payment-base-url' import { makeAccountingBaseUrl } from './make-accounting-base-url' import { formatDateToUS, getStaticUrlsByEnvironment } from '@/helpers' import { useAccountStore } from '@/stores/account' -import graphQLApi from '../axios/makeGraphQl' import { getLastDayMonth } from '@/helpers/payment-history' const PAGE_SIZE = 200 @@ -67,14 +66,12 @@ const listPaymentHistoryForRegularAccounts = async () => { }` } - let httpResponse = await AxiosHttpClientAdapter.request( - { - url: `${makeAccountingBaseUrl()}`, - method: 'POST', - body: payload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url: `${makeAccountingBaseUrl()}`, + method: 'POST', + body: payload + }) return adaptPaymentHistoryForRegularAccounts(httpResponse) } diff --git a/src/services/billing-services/list-service-and-products-changes-accounting-service.js b/src/services/billing-services/list-service-and-products-changes-accounting-service.js index a5c42df5d..7dd643278 100644 --- a/src/services/billing-services/list-service-and-products-changes-accounting-service.js +++ b/src/services/billing-services/list-service-and-products-changes-accounting-service.js @@ -1,6 +1,5 @@ import { formatUnitValue } from '@/helpers' import { AxiosHttpClientAdapter, parseHttpResponse } from '../axios/AxiosHttpClientAdapter' -import graphQLApi from '../axios/makeGraphQl' import { makeAccountingBaseUrl } from './make-accounting-base-url' export const listServiceAndProductsChangesAccountingService = async (billID) => { @@ -27,14 +26,12 @@ export const listServiceAndProductsChangesAccountingService = async (billID) => query: BILL_DETAIL_QUERY } - let httpResponse = await AxiosHttpClientAdapter.request( - { - url: `${makeAccountingBaseUrl()}`, - method: 'POST', - body: graphQLPayload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url: `${makeAccountingBaseUrl()}`, + method: 'POST', + body: graphQLPayload + }) httpResponse = adapt(httpResponse) diff --git a/src/services/billing-services/list-service-and-products-changes.js b/src/services/billing-services/list-service-and-products-changes.js index 5b2d62233..efb7a24d7 100644 --- a/src/services/billing-services/list-service-and-products-changes.js +++ b/src/services/billing-services/list-service-and-products-changes.js @@ -1,6 +1,5 @@ import { formatCurrencyString, formatUnitValue } from '@/helpers' import { AxiosHttpClientAdapter, parseHttpResponse } from '../axios/AxiosHttpClientAdapter' -import graphQLApi from '../axios/makeGraphQl' import { makeBillingBaseUrl } from './make-billing-base-url' export const listServiceAndProductsChangesService = async (billID) => { @@ -98,14 +97,12 @@ export const listServiceAndProductsChangesService = async (billID) => { } } - let httpResponse = await AxiosHttpClientAdapter.request( - { - url: `${makeBillingBaseUrl()}`, - method: 'POST', - body: graphQLPayload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url: `${makeBillingBaseUrl()}`, + method: 'POST', + body: graphQLPayload + }) httpResponse = adapt(httpResponse) diff --git a/src/services/billing-services/load-current-invoice-service.js b/src/services/billing-services/load-current-invoice-service.js index 3ee2e1671..4789c1957 100644 --- a/src/services/billing-services/load-current-invoice-service.js +++ b/src/services/billing-services/load-current-invoice-service.js @@ -1,5 +1,4 @@ import { AxiosHttpClientAdapter, parseHttpResponse } from '../axios/AxiosHttpClientAdapter' -import graphQLApi from '../axios/makeGraphQl' import { makeBillingBaseUrl } from './make-billing-base-url' import { makeAccountingBaseUrl } from './make-accounting-base-url' import { formatDateToUSBilling } from '@/helpers/convert-date' @@ -10,14 +9,12 @@ export const loadCurrentInvoiceService = async () => { const payload = getQueryByAccountType(accountIsNotRegular) const url = accountIsNotRegular ? `${makeBillingBaseUrl()}` : `${makeAccountingBaseUrl()}` - let httpResponse = await AxiosHttpClientAdapter.request( - { - url, - method: 'POST', - body: payload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url, + method: 'POST', + body: payload + }) httpResponse = adapt(httpResponse, accountIsNotRegular) diff --git a/src/services/billing-services/load-invoice-data-service.js b/src/services/billing-services/load-invoice-data-service.js index 02ddb8e2c..2346b3d50 100644 --- a/src/services/billing-services/load-invoice-data-service.js +++ b/src/services/billing-services/load-invoice-data-service.js @@ -1,5 +1,4 @@ import { AxiosHttpClientAdapter, parseHttpResponse } from '../axios/AxiosHttpClientAdapter' -import graphQLApi from '../axios/makeGraphQl' import { makeBillingBaseUrl } from './make-billing-base-url' import { formatDateToUSBilling } from '@/helpers/convert-date' import { makeAccountingBaseUrl } from './make-accounting-base-url' @@ -10,14 +9,12 @@ export const loadInvoiceDataService = async (invoiceId) => { const payload = getQueryByAccountType(accountIsNotRegular, invoiceId) const url = accountIsNotRegular ? `${makeBillingBaseUrl()}` : `${makeAccountingBaseUrl()}` - let httpResponse = await AxiosHttpClientAdapter.request( - { - url, - method: 'POST', - body: payload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url, + method: 'POST', + body: payload + }) httpResponse = adapt(httpResponse, accountIsNotRegular) diff --git a/src/services/billing-services/load-invoice-last-updated-service.js b/src/services/billing-services/load-invoice-last-updated-service.js index bf23dd136..c16e5e8e5 100644 --- a/src/services/billing-services/load-invoice-last-updated-service.js +++ b/src/services/billing-services/load-invoice-last-updated-service.js @@ -1,5 +1,4 @@ import { AxiosHttpClientAdapter, parseHttpResponse } from '../axios/AxiosHttpClientAdapter' -import graphQLApi from '../axios/makeGraphQl' import { makeBillingBaseUrl } from './make-billing-base-url' import { formatDateToUSBilling } from '@/helpers/convert-date' @@ -17,14 +16,12 @@ export const loadInvoiceLastUpdatedService = async () => { }` } - let httpResponse = await AxiosHttpClientAdapter.request( - { - url: `${makeBillingBaseUrl()}`, - method: 'POST', - body: payload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url: `${makeBillingBaseUrl()}`, + method: 'POST', + body: payload + }) httpResponse = adapt(httpResponse) diff --git a/src/services/billing-services/load-your-service-plan-service.js b/src/services/billing-services/load-your-service-plan-service.js index f4a12e4d5..dbebc567e 100644 --- a/src/services/billing-services/load-your-service-plan-service.js +++ b/src/services/billing-services/load-your-service-plan-service.js @@ -1,7 +1,6 @@ import { AxiosHttpClientAdapter, parseHttpResponse } from '../axios/AxiosHttpClientAdapter' -import graphQLApi from '../axios/makeGraphQl' import { formatDateToUSBilling } from '@/helpers/convert-date' - +import { makeBillingBaseUrl } from './make-billing-base-url' export const loadYourServicePlanService = async (disclaimer = '') => { const { lastDayOfMonth, firstDayOfMonth } = getFirstDayCurrentDate() @@ -25,14 +24,12 @@ export const loadYourServicePlanService = async (disclaimer = '') => { }` } - let httpResponse = await AxiosHttpClientAdapter.request( - { - url: `/billing`, - method: 'POST', - body: payload - }, - graphQLApi - ) + let httpResponse = await AxiosHttpClientAdapter.request({ + baseURL: '/', + url: makeBillingBaseUrl(), + method: 'POST', + body: payload + }) httpResponse = adapt(httpResponse, disclaimer) diff --git a/src/services/billing-services/make-accounting-base-url.js b/src/services/billing-services/make-accounting-base-url.js index 20ef389ff..816093604 100644 --- a/src/services/billing-services/make-accounting-base-url.js +++ b/src/services/billing-services/make-accounting-base-url.js @@ -1,3 +1,3 @@ export const makeAccountingBaseUrl = () => { - return 'accounting' + return 'v4/accounting/graphql' } diff --git a/src/services/billing-services/make-billing-base-url.js b/src/services/billing-services/make-billing-base-url.js index a523b4772..a97fdad16 100644 --- a/src/services/billing-services/make-billing-base-url.js +++ b/src/services/billing-services/make-billing-base-url.js @@ -1,3 +1,3 @@ export const makeBillingBaseUrl = () => { - return 'billing' + return 'v4/billing/graphql' } diff --git a/src/services/real-time-events-service/activity-history/list-activity-history.js b/src/services/real-time-events-service/activity-history/list-activity-history.js index 5882fec99..a7dff347e 100644 --- a/src/services/real-time-events-service/activity-history/list-activity-history.js +++ b/src/services/real-time-events-service/activity-history/list-activity-history.js @@ -14,6 +14,7 @@ export const listActivityHistory = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/activity-history/load-activity-history.js b/src/services/real-time-events-service/activity-history/load-activity-history.js index 49fe2a767..02e48f591 100644 --- a/src/services/real-time-events-service/activity-history/load-activity-history.js +++ b/src/services/real-time-events-service/activity-history/load-activity-history.js @@ -10,6 +10,7 @@ export const loadActivityHistory = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/data-stream/list-data-stream.js b/src/services/real-time-events-service/data-stream/list-data-stream.js index c5ec79ac5..3adf3ff18 100644 --- a/src/services/real-time-events-service/data-stream/list-data-stream.js +++ b/src/services/real-time-events-service/data-stream/list-data-stream.js @@ -14,6 +14,7 @@ export const listDataStream = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/data-stream/load-data-stream.js b/src/services/real-time-events-service/data-stream/load-data-stream.js index aac098bff..d7d7eabdd 100644 --- a/src/services/real-time-events-service/data-stream/load-data-stream.js +++ b/src/services/real-time-events-service/data-stream/load-data-stream.js @@ -9,6 +9,7 @@ export const loadDataStream = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/edge-dns/list-edge-dns.js b/src/services/real-time-events-service/edge-dns/list-edge-dns.js index 188bbec24..a61ecacdd 100644 --- a/src/services/real-time-events-service/edge-dns/list-edge-dns.js +++ b/src/services/real-time-events-service/edge-dns/list-edge-dns.js @@ -14,6 +14,7 @@ export const listEdgeDNS = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/edge-dns/load-edge-dns.js b/src/services/real-time-events-service/edge-dns/load-edge-dns.js index f4e6c9441..84fe83ce4 100644 --- a/src/services/real-time-events-service/edge-dns/load-edge-dns.js +++ b/src/services/real-time-events-service/edge-dns/load-edge-dns.js @@ -8,6 +8,7 @@ export const loadEdgeDNS = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/edge-functions-console/list-edge-functions-console.js b/src/services/real-time-events-service/edge-functions-console/list-edge-functions-console.js index d1d4d4673..a590f0635 100644 --- a/src/services/real-time-events-service/edge-functions-console/list-edge-functions-console.js +++ b/src/services/real-time-events-service/edge-functions-console/list-edge-functions-console.js @@ -15,6 +15,7 @@ export const listEdgeFunctionsConsole = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/edge-functions-console/load-edge-functions-console.js b/src/services/real-time-events-service/edge-functions-console/load-edge-functions-console.js index b09beb0ca..7408e007f 100644 --- a/src/services/real-time-events-service/edge-functions-console/load-edge-functions-console.js +++ b/src/services/real-time-events-service/edge-functions-console/load-edge-functions-console.js @@ -9,6 +9,7 @@ export const loadEdgeFunctionsConsole = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/edge-functions/list-edge-functions.js b/src/services/real-time-events-service/edge-functions/list-edge-functions.js index 1faac5bf7..5f35eb276 100644 --- a/src/services/real-time-events-service/edge-functions/list-edge-functions.js +++ b/src/services/real-time-events-service/edge-functions/list-edge-functions.js @@ -14,6 +14,7 @@ export const listEdgeFunctions = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/edge-functions/load-edge-functions.js b/src/services/real-time-events-service/edge-functions/load-edge-functions.js index dc65b29de..68b20291a 100644 --- a/src/services/real-time-events-service/edge-functions/load-edge-functions.js +++ b/src/services/real-time-events-service/edge-functions/load-edge-functions.js @@ -10,6 +10,7 @@ export const loadEdgeFunctions = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/http-request/list-http-request.js b/src/services/real-time-events-service/http-request/list-http-request.js index f9ce5139f..feb5f90b8 100644 --- a/src/services/real-time-events-service/http-request/list-http-request.js +++ b/src/services/real-time-events-service/http-request/list-http-request.js @@ -13,6 +13,7 @@ export const listHttpRequest = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const httpResponse = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/http-request/load-http-request.js b/src/services/real-time-events-service/http-request/load-http-request.js index a4124ee39..bd0a207a5 100644 --- a/src/services/real-time-events-service/http-request/load-http-request.js +++ b/src/services/real-time-events-service/http-request/load-http-request.js @@ -9,6 +9,7 @@ export const loadHttpRequest = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const httpResponse = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/image-processor/list-image-processor.js b/src/services/real-time-events-service/image-processor/list-image-processor.js index 082e1850a..84f70e85a 100644 --- a/src/services/real-time-events-service/image-processor/list-image-processor.js +++ b/src/services/real-time-events-service/image-processor/list-image-processor.js @@ -14,6 +14,7 @@ export const listImageProcessor = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/image-processor/load-image-processor.js b/src/services/real-time-events-service/image-processor/load-image-processor.js index 7413bc903..e1aaf487e 100644 --- a/src/services/real-time-events-service/image-processor/load-image-processor.js +++ b/src/services/real-time-events-service/image-processor/load-image-processor.js @@ -9,6 +9,7 @@ export const loadImageProcessor = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/load-fields-real-time-events-data.js b/src/services/real-time-events-service/load-fields-real-time-events-data.js index 15facceb8..a7bdf7f74 100644 --- a/src/services/real-time-events-service/load-fields-real-time-events-data.js +++ b/src/services/real-time-events-service/load-fields-real-time-events-data.js @@ -10,6 +10,7 @@ import { AxiosHttpClientAdapter } from '../axios/AxiosHttpClientAdapter' */ export async function loadFieldsEventsData({ query, signal }) { const response = await AxiosHttpClientAdapter.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: { diff --git a/src/services/real-time-events-service/make-real-time-events-service.js b/src/services/real-time-events-service/make-real-time-events-service.js index 7312c7a78..5198b5a3d 100644 --- a/src/services/real-time-events-service/make-real-time-events-service.js +++ b/src/services/real-time-events-service/make-real-time-events-service.js @@ -1,3 +1,3 @@ export const makeRealTimeEventsBaseUrl = () => { - return 'v3/events/graphql' + return 'v4/events/graphql' } diff --git a/src/services/real-time-events-service/tiered-cache/list-tiered-cache.js b/src/services/real-time-events-service/tiered-cache/list-tiered-cache.js index 7c60ce2eb..f9c6c5ee5 100644 --- a/src/services/real-time-events-service/tiered-cache/list-tiered-cache.js +++ b/src/services/real-time-events-service/tiered-cache/list-tiered-cache.js @@ -14,6 +14,7 @@ export const listTieredCache = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-events-service/tiered-cache/load-tiered-cache.js b/src/services/real-time-events-service/tiered-cache/load-tiered-cache.js index ddd00e5b8..9438deca5 100644 --- a/src/services/real-time-events-service/tiered-cache/load-tiered-cache.js +++ b/src/services/real-time-events-service/tiered-cache/load-tiered-cache.js @@ -9,6 +9,7 @@ export const loadTieredCache = async (filter) => { const decorator = new AxiosHttpClientSignalDecorator() const response = await decorator.request({ + baseURL: '/', url: makeRealTimeEventsBaseUrl(), method: 'POST', body: payload diff --git a/src/services/real-time-metrics-services/load-real-time-metrics-data.js b/src/services/real-time-metrics-services/load-real-time-metrics-data.js index a0320fc37..1ec1c09e4 100644 --- a/src/services/real-time-metrics-services/load-real-time-metrics-data.js +++ b/src/services/real-time-metrics-services/load-real-time-metrics-data.js @@ -10,6 +10,7 @@ import { AxiosHttpClientAdapter } from '../axios/AxiosHttpClientAdapter' */ export async function loadRealTimeMetricsData({ query, signal }) { const response = await AxiosHttpClientAdapter.request({ + baseURL: '/', url: makeBeholderBaseUrl(), method: 'POST', body: adapt(query), diff --git a/src/services/real-time-metrics-services/make-beholder-base-url.js b/src/services/real-time-metrics-services/make-beholder-base-url.js index f79e749b7..244915f8a 100644 --- a/src/services/real-time-metrics-services/make-beholder-base-url.js +++ b/src/services/real-time-metrics-services/make-beholder-base-url.js @@ -1,4 +1,3 @@ export const makeBeholderBaseUrl = () => { - const version = 'v3' - return `${version}/metrics/graphql` + return `v4/metrics/graphql` } diff --git a/src/tests/helpers/events-playground-opener.test.js b/src/tests/helpers/events-playground-opener.test.js index 01ed03006..119351fd0 100644 --- a/src/tests/helpers/events-playground-opener.test.js +++ b/src/tests/helpers/events-playground-opener.test.js @@ -10,12 +10,12 @@ const scenarios = [ { label: 'should open a new window for the events playground in the prod environment', href: 'https://azion.com', - expected: 'https://manager.azion.com/events/graphql#query=undefined&variables=undefined' + expected: 'https://api.azion.com/v4/events/graphql#query=undefined&variables=undefined' }, { label: 'should open a new window for the events playground in the stage environment', href: 'http://localhost', - expected: 'https://manager.azion.com/events/graphql#query=undefined&variables=undefined' + expected: 'https://api.azion.com/v4/events/graphql#query=undefined&variables=undefined' } ] diff --git a/src/tests/helpers/get-static-urls-by-environment.test.js b/src/tests/helpers/get-static-urls-by-environment.test.js index 22a40abc9..9cacdeeef 100644 --- a/src/tests/helpers/get-static-urls-by-environment.test.js +++ b/src/tests/helpers/get-static-urls-by-environment.test.js @@ -53,17 +53,17 @@ const scenarios = [ { section: 'playgroundMetrics', env: 'development', - expected: 'https://stage-manager.azion.com/metrics/graphql' + expected: 'https://stage-api.azion.com/v4/metrics/graphql' }, { section: 'playgroundMetrics', env: 'stage', - expected: 'https://stage-manager.azion.com/metrics/graphql' + expected: 'https://stage-api.azion.com/v4/metrics/graphql' }, { section: 'playgroundMetrics', env: 'production', - expected: 'https://manager.azion.com/metrics/graphql' + expected: 'https://api.azion.com/v4/metrics/graphql' }, { section: 'helpCenter', diff --git a/src/tests/helpers/metrics-playground-opener.test.js b/src/tests/helpers/metrics-playground-opener.test.js index bf128f07e..30e669ee3 100644 --- a/src/tests/helpers/metrics-playground-opener.test.js +++ b/src/tests/helpers/metrics-playground-opener.test.js @@ -12,34 +12,29 @@ const makeSut = () => { const scenarios = [ { label: 'should open a new window to metrics playground in prod env', - href: 'https://azion.com', - expected: 'https://manager.azion.com/metrics/graphql' + environment: 'production', + expected: 'https://api.azion.com/v4/metrics/graphql' }, { label: 'should open a new window to metrics playground in stage env', - href: 'http://localhost', - expected: 'https://stage-manager.azion.com/metrics/graphql' + environment: 'stage', + expected: 'https://stage-api.azion.com/v4/metrics/graphql' } ] describe('metricsPlaygroundOpener', () => { afterAll(() => { - vi.unstubAllGlobals() + vi.restoreAllMocks() }) - - it.each(scenarios)('$label', ({ href, expected }) => () => { - vi.stubGlobal('window', { - open: (url) => url, - location: { - href - } - }) - - const openWindowSpy = vi.spyOn(window, 'open') + it.each(scenarios)('$label', async ({ environment, expected }) => { + vi.stubEnv('VITE_ENVIRONMENT', environment) + const mockWindowOpen = vi.fn() + vi.stubGlobal('window', { open: mockWindowOpen }) const { sut } = makeSut() - sut() + await sut() - expect(openWindowSpy).toHaveBeenCalledWith(expected, '_blank') + expect(mockWindowOpen).toHaveBeenCalledTimes(1) + expect(mockWindowOpen).toHaveBeenCalledWith(expected, '_blank') }) }) diff --git a/src/tests/services/billing-services/list-payment-history-service.test.js b/src/tests/services/billing-services/list-payment-history-service.test.js index 772b9cd5f..2ead99ad5 100644 --- a/src/tests/services/billing-services/list-payment-history-service.test.js +++ b/src/tests/services/billing-services/list-payment-history-service.test.js @@ -4,7 +4,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { localeMock } from '@/tests/utils/localeMock' import { getStaticUrlsByEnvironment } from '@/helpers' import { useAccountStore } from '@/stores/account' -import graphQLApi from '@/services/axios/makeGraphQl' import { getLastDayMonth } from '@/helpers/payment-history' const fixtures = { @@ -128,12 +127,12 @@ describe('BillingServices', () => { const { sut } = makeSut() await sut() - expect(requestSpy).toHaveBeenCalledWith( - { - url: 'accounting', - method: 'POST', - body: { - query: ` + expect(requestSpy).toHaveBeenCalledWith({ + url: 'v4/accounting/graphql', + method: 'POST', + baseURL: '/', + body: { + query: ` query { accountingDetail ( filter: { @@ -152,10 +151,8 @@ describe('BillingServices', () => { metricSlug } }` - } - }, - graphQLApi - ) + } + }) }) it('should parse correctly payment history for regular accounts', async () => { diff --git a/src/tests/services/billing-services/load-your-service-plan-service.test.js b/src/tests/services/billing-services/load-your-service-plan-service.test.js index fa7dc2cf6..f00640987 100644 --- a/src/tests/services/billing-services/load-your-service-plan-service.test.js +++ b/src/tests/services/billing-services/load-your-service-plan-service.test.js @@ -1,7 +1,6 @@ import { AxiosHttpClientAdapter } from '@/services/axios/AxiosHttpClientAdapter' import { loadYourServicePlanService } from '@/services/billing-services' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import graphQLApi from '@/services/axios/makeGraphQl' const fixtures = { paymentMock: { @@ -66,14 +65,12 @@ describe('BillingService', () => { } }` } - expect(requestSpy).toHaveBeenCalledWith( - { - url: '/billing', - method: 'POST', - body: payload - }, - graphQLApi - ) + expect(requestSpy).toHaveBeenCalledWith({ + url: 'v4/billing/graphql', + method: 'POST', + baseURL: '/', + body: payload + }) }) it('should return correct credit amount in the disclaimer message', async () => { vi.spyOn(AxiosHttpClientAdapter, 'request').mockResolvedValueOnce({ diff --git a/src/tests/services/billing-services/make-billing-base-url.test.js b/src/tests/services/billing-services/make-billing-base-url.test.js index ad09fe64a..185475731 100644 --- a/src/tests/services/billing-services/make-billing-base-url.test.js +++ b/src/tests/services/billing-services/make-billing-base-url.test.js @@ -12,7 +12,7 @@ const makeSut = () => { describe('BillingServices', () => { it('should return the API base url to billing service', () => { const { sut } = makeSut() - const correctApiUrl = 'billing' + const correctApiUrl = 'v4/billing/graphql' const baseUrl = sut() diff --git a/src/tests/services/real-time-events-service/activity-history/list-activity-history.test.js b/src/tests/services/real-time-events-service/activity-history/list-activity-history.test.js index 22f2c9065..f26812486 100644 --- a/src/tests/services/real-time-events-service/activity-history/list-activity-history.test.js +++ b/src/tests/services/real-time-events-service/activity-history/list-activity-history.test.js @@ -64,9 +64,10 @@ describe('ActivityHistoryServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/activity-history/load-activity-history.test.js b/src/tests/services/real-time-events-service/activity-history/load-activity-history.test.js index 6e7d67aae..7b27b165c 100644 --- a/src/tests/services/real-time-events-service/activity-history/load-activity-history.test.js +++ b/src/tests/services/real-time-events-service/activity-history/load-activity-history.test.js @@ -42,9 +42,10 @@ describe('ActivityHistoryServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/data-stream/list-data-stream.test.js b/src/tests/services/real-time-events-service/data-stream/list-data-stream.test.js index 8fb363e27..d38cef6ba 100644 --- a/src/tests/services/real-time-events-service/data-stream/list-data-stream.test.js +++ b/src/tests/services/real-time-events-service/data-stream/list-data-stream.test.js @@ -70,9 +70,10 @@ describe('DataStreamingServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/data-stream/load-data-stream.test.js b/src/tests/services/real-time-events-service/data-stream/load-data-stream.test.js index 538d520e1..f81ee3aa2 100644 --- a/src/tests/services/real-time-events-service/data-stream/load-data-stream.test.js +++ b/src/tests/services/real-time-events-service/data-stream/load-data-stream.test.js @@ -42,9 +42,10 @@ describe('DataStreamingServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/edge-dns/list-edge-dns.test.js b/src/tests/services/real-time-events-service/edge-dns/list-edge-dns.test.js index f7bcd054b..fdea5665f 100644 --- a/src/tests/services/real-time-events-service/edge-dns/list-edge-dns.test.js +++ b/src/tests/services/real-time-events-service/edge-dns/list-edge-dns.test.js @@ -65,9 +65,10 @@ describe('edgeDns', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/edge-dns/load-edge-dns.test.js b/src/tests/services/real-time-events-service/edge-dns/load-edge-dns.test.js index 768f94672..90077e42c 100644 --- a/src/tests/services/real-time-events-service/edge-dns/load-edge-dns.test.js +++ b/src/tests/services/real-time-events-service/edge-dns/load-edge-dns.test.js @@ -42,9 +42,10 @@ describe('ImageProcessorServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/edge-functions-console/list-edge-functions-console.test.js b/src/tests/services/real-time-events-service/edge-functions-console/list-edge-functions-console.test.js index 22f8d5cd1..f87b768e8 100644 --- a/src/tests/services/real-time-events-service/edge-functions-console/list-edge-functions-console.test.js +++ b/src/tests/services/real-time-events-service/edge-functions-console/list-edge-functions-console.test.js @@ -64,9 +64,10 @@ describe('EdgeFunctionsConsoleServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/edge-functions-console/load-edge-functions-console.test.js b/src/tests/services/real-time-events-service/edge-functions-console/load-edge-functions-console.test.js index e93b888e2..4b7a3c2bd 100644 --- a/src/tests/services/real-time-events-service/edge-functions-console/load-edge-functions-console.test.js +++ b/src/tests/services/real-time-events-service/edge-functions-console/load-edge-functions-console.test.js @@ -42,9 +42,10 @@ describe('EdgeFunctionsConsoleServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/edge-functions/list-edge-functions.test.js b/src/tests/services/real-time-events-service/edge-functions/list-edge-functions.test.js index 9bb0182ee..340725a80 100644 --- a/src/tests/services/real-time-events-service/edge-functions/list-edge-functions.test.js +++ b/src/tests/services/real-time-events-service/edge-functions/list-edge-functions.test.js @@ -61,9 +61,10 @@ describe('EdgeFunctionsServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/edge-functions/load-edge-functions.test.js b/src/tests/services/real-time-events-service/edge-functions/load-edge-functions.test.js index 6140e6c38..0b757769f 100644 --- a/src/tests/services/real-time-events-service/edge-functions/load-edge-functions.test.js +++ b/src/tests/services/real-time-events-service/edge-functions/load-edge-functions.test.js @@ -43,9 +43,10 @@ describe('DataStreamingServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/http-request/list-http-request.test.js b/src/tests/services/real-time-events-service/http-request/list-http-request.test.js index cf9fc0e44..7f0ac52ff 100644 --- a/src/tests/services/real-time-events-service/http-request/list-http-request.test.js +++ b/src/tests/services/real-time-events-service/http-request/list-http-request.test.js @@ -63,9 +63,10 @@ describe('HttpRequestServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/http-request/load-http-request.test.js b/src/tests/services/real-time-events-service/http-request/load-http-request.test.js index 729ae590b..56d34db76 100644 --- a/src/tests/services/real-time-events-service/http-request/load-http-request.test.js +++ b/src/tests/services/real-time-events-service/http-request/load-http-request.test.js @@ -69,9 +69,10 @@ describe('HttpRequestServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/image-processor/list-image-processor.test.js b/src/tests/services/real-time-events-service/image-processor/list-image-processor.test.js index 0640401e2..01942f87f 100644 --- a/src/tests/services/real-time-events-service/image-processor/list-image-processor.test.js +++ b/src/tests/services/real-time-events-service/image-processor/list-image-processor.test.js @@ -66,9 +66,10 @@ describe('ImageProcessorServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/image-processor/load-image-processor.test.js b/src/tests/services/real-time-events-service/image-processor/load-image-processor.test.js index 39a8317b0..ae8cd6529 100644 --- a/src/tests/services/real-time-events-service/image-processor/load-image-processor.test.js +++ b/src/tests/services/real-time-events-service/image-processor/load-image-processor.test.js @@ -58,9 +58,10 @@ describe('ImageProcessorServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-events-service/tiered-cache/list-tiered-cache.test.js b/src/tests/services/real-time-events-service/tiered-cache/list-tiered-cache.test.js index a431a6cfd..081558df5 100644 --- a/src/tests/services/real-time-events-service/tiered-cache/list-tiered-cache.test.js +++ b/src/tests/services/real-time-events-service/tiered-cache/list-tiered-cache.test.js @@ -65,9 +65,10 @@ describe('tieredCacheServices', () => { ].join('\n') expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query, variables: { diff --git a/src/tests/services/real-time-events-service/tiered-cache/load-tiered-cache.test.js b/src/tests/services/real-time-events-service/tiered-cache/load-tiered-cache.test.js index cb01cbda3..5c764d50f 100644 --- a/src/tests/services/real-time-events-service/tiered-cache/load-tiered-cache.test.js +++ b/src/tests/services/real-time-events-service/tiered-cache/load-tiered-cache.test.js @@ -64,9 +64,10 @@ describe('tieredCacheServices', () => { await sut(fixtures.filter) expect(requestSpy).toHaveBeenCalledWith({ - url: 'v3/events/graphql', + url: 'v4/events/graphql', method: 'POST', signal: undefined, + baseURL: '/', body: { query: expect.any(String), variables: { diff --git a/src/tests/services/real-time-metrics-services/load-real-time-metrics-data.test.js b/src/tests/services/real-time-metrics-services/load-real-time-metrics-data.test.js index 3bf16a001..9673c274a 100644 --- a/src/tests/services/real-time-metrics-services/load-real-time-metrics-data.test.js +++ b/src/tests/services/real-time-metrics-services/load-real-time-metrics-data.test.js @@ -27,13 +27,14 @@ describe('RealTimeMetricsServices', () => { }) const { sut } = makeSut() - const version = 'v3' + const version = 'v4' await sut({ query: fixtures.query, signal: fixtures.signal }) expect(requestSpy).toHaveBeenCalledWith({ url: `${version}/metrics/graphql`, method: 'POST', + baseURL: '/', body: fixtures.formattedQuery, signal: fixtures.signal }) diff --git a/src/tests/services/real-time-metrics-services/make-beholder-base-url.test.js b/src/tests/services/real-time-metrics-services/make-beholder-base-url.test.js index 332effd18..f7971c5bf 100644 --- a/src/tests/services/real-time-metrics-services/make-beholder-base-url.test.js +++ b/src/tests/services/real-time-metrics-services/make-beholder-base-url.test.js @@ -12,7 +12,7 @@ const makeSut = () => { describe('RealTimeMetricsServices', () => { it('should return the API base url to beholder service', () => { const { sut } = makeSut() - const version = 'v3' + const version = 'v4' const beholderUrl = `${version}/metrics/graphql` const baseUrl = sut() diff --git a/vite.config.js b/vite.config.js index 927b1d26e..d2f0b22c5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -50,11 +50,6 @@ const getConfig = () => { changeOrigin: true, rewrite: (path) => path.replace(/^\/graphql\/cities/, '/graphql') }, - '/graphql/billing': { - target: `${URLStartPrefix}manager.azion.com`, - changeOrigin: true, - rewrite: (path) => path.replace(/^\/graphql\/billing/, '/billing/graphql') - }, '/api/webhook/console_feedback': { target: `https://automate.azion.net/`, changeOrigin: true, @@ -70,6 +65,10 @@ const getConfig = () => { changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') }, + '/v4': { + target: `${URLStartPrefix}api.azion.com`, + changeOrigin: true + }, '/webpagetest': { target: `https://www.azion.com/api/webpagetest`, changeOrigin: true, @@ -84,12 +83,7 @@ const getConfig = () => { target: `${URLStartPrefix}ai.azion.com/copilot/chat/completions`, changeOrigin: true, rewrite: (path) => path.replace(/^\/ai/, '') - }, - '/graphql/accounting': { - target: `${URLStartPrefix}manager.azion.com`, - changeOrigin: true, - rewrite: (path) => path.replace(/^\/graphql\/accounting/, '/accounting/graphql') - }, + } } } }