diff --git a/backend/src/federation/client/1_0/FederationClient.ts b/backend/src/federation/client/1_0/FederationClient.ts index 52964e789..1593d3ed2 100644 --- a/backend/src/federation/client/1_0/FederationClient.ts +++ b/backend/src/federation/client/1_0/FederationClient.ts @@ -8,39 +8,39 @@ import { gql } from 'graphql-request' import { GraphQLGetClient } from '@/federation/client/GraphQLGetClient' import { backendLogger as logger } from '@/server/logger' -export async function requestGetPublicKey( - dbCom: DbFederatedCommunity, -): Promise { - let endpoint = dbCom.endPoint.endsWith('/') ? dbCom.endPoint : dbCom.endPoint + '/' - endpoint = `${endpoint}${dbCom.apiVersion}/` - logger.info(`requestGetPublicKey with endpoint='${endpoint}'...`) +export class FederationClient { + public async requestGetPublicKey(dbCom: DbFederatedCommunity): Promise { + let endpoint = dbCom.endPoint.endsWith('/') ? dbCom.endPoint : dbCom.endPoint + '/' + endpoint = `${endpoint}${dbCom.apiVersion}/` + logger.info(`requestGetPublicKey with endpoint='${endpoint}'...`) - const graphQLClient = GraphQLGetClient.getInstance(endpoint) - logger.debug(`graphQLClient=${JSON.stringify(graphQLClient)}`) - const query = gql` - query { - getPublicKey { - publicKey + const graphQLClient = GraphQLGetClient.getInstance(endpoint) + logger.debug(`graphQLClient=${JSON.stringify(graphQLClient)}`) + const query = gql` + query { + getPublicKey { + publicKey + } } + ` + const variables = {} + try { + const { data, errors, extensions, headers, status } = await graphQLClient.rawRequest( + query, + variables, + ) + logger.debug(`Response-Data:`, data, errors, extensions, headers, status) + if (data) { + logger.debug(`Response-PublicKey:`, data.getPublicKey.publicKey) + logger.info(`requestGetPublicKey processed successfully`) + return data.getPublicKey.publicKey + } + logger.warn(`requestGetPublicKey processed without response data`) + } catch (err) { + if (err instanceof GraphQLError) { + logger.error(`RawRequest-Error on ${endpoint} with message ${err.message}`) + } + throw new Error(`Request-Error in requestGetPublicKey.`) } - ` - const variables = {} - try { - const { data, errors, extensions, headers, status } = await graphQLClient.rawRequest( - query, - variables, - ) - logger.debug(`Response-Data:`, data, errors, extensions, headers, status) - if (data) { - logger.debug(`Response-PublicKey:`, data.getPublicKey.publicKey) - logger.info(`requestGetPublicKey processed successfully`) - return data.getPublicKey.publicKey - } - logger.warn(`requestGetPublicKey processed without response data`) - } catch (err) { - if (err instanceof GraphQLError) { - logger.error(`RawRequest-Error on ${endpoint} with message ${err.message}`) - } - throw new Error(`Request-Error in requestGetPublicKey.`) } } diff --git a/backend/src/federation/client/1_1/FederationClient.ts b/backend/src/federation/client/1_1/FederationClient.ts index c91ebb856..eeb0ebe3f 100644 --- a/backend/src/federation/client/1_1/FederationClient.ts +++ b/backend/src/federation/client/1_1/FederationClient.ts @@ -2,45 +2,16 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -import { GraphQLError } from 'graphql' -import { gql } from 'graphql-request' -import { GraphQLGetClient } from '@/federation/client/GraphQLGetClient' -import { backendLogger as logger } from '@/server/logger' +import { FederationClient as FedClient } from '@/federation/client/1_0/FederationClient' +// import { GraphQLError } from 'graphql' +// import { gql } from 'graphql-request' -export async function requestGetPublicKey( - dbCom: DbFederatedCommunity, -): Promise { - let endpoint = dbCom.endPoint.endsWith('/') ? dbCom.endPoint : dbCom.endPoint + '/' - endpoint = `${endpoint}${dbCom.apiVersion}/` - logger.info(`requestGetPublicKey with endpoint='${endpoint}'...`) +// import { GraphQLGetClient } from '@/federation/client/GraphQLGetClient' +// import { backendLogger as logger } from '@/server/logger' - const graphQLClient = GraphQLGetClient.getInstance(endpoint) - logger.debug(`graphQLClient=${JSON.stringify(graphQLClient)}`) - const query = gql` - query { - getPublicKey { - publicKey - } - } - ` - const variables = {} - try { - const { data, errors, extensions, headers, status } = await graphQLClient.rawRequest( - query, - variables, - ) - logger.debug(`Response-Data:`, data, errors, extensions, headers, status) - if (data) { - logger.debug(`Response-PublicKey:`, data.getPublicKey.publicKey) - logger.info(`requestGetPublicKey processed successfully`) - return data.getPublicKey.publicKey - } - logger.warn(`requestGetPublicKey processed without response data`) - } catch (err) { - if (err instanceof GraphQLError) { - logger.error(`RawRequest-Error on ${endpoint} with message ${err.message}`) - } - throw new Error(`Request-Error in requestGetPublicKey`) // :${err}`) +export class FederationClient { + async requestGetPublicKey(dbCom: DbFederatedCommunity): Promise { + return await new FedClient().requestGetPublicKey(dbCom) } } diff --git a/backend/src/federation/validateCommunities.ts b/backend/src/federation/validateCommunities.ts index 52e258a53..34bcaa1f2 100644 --- a/backend/src/federation/validateCommunities.ts +++ b/backend/src/federation/validateCommunities.ts @@ -6,9 +6,9 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import { backendLogger as logger } from '@/server/logger' // eslint-disable-next-line camelcase -import { requestGetPublicKey as v1_0_requestGetPublicKey } from './client/1_0/FederationClient' +import { FederationClient as FederationClient_V1_0 } from './client/1_0/FederationClient' // eslint-disable-next-line camelcase -import { requestGetPublicKey as v1_1_requestGetPublicKey } from './client/1_1/FederationClient' +import { FederationClient as FederationClient_V1_1 } from './client/1_1/FederationClient' import { ApiVersionType } from './enum/apiVersionType' export function startValidateCommunities(timerInterval: number): void { @@ -75,9 +75,9 @@ async function invokeVersionedRequestGetPublicKey( ): Promise { switch (dbCom.apiVersion) { case ApiVersionType.V1_0: - return v1_0_requestGetPublicKey(dbCom) + return new FederationClient_V1_0().requestGetPublicKey(dbCom) case ApiVersionType.V1_1: - return v1_1_requestGetPublicKey(dbCom) + return new FederationClient_V1_1().requestGetPublicKey(dbCom) default: return undefined }