mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge pull request #3016 from gradido/camelcase-exception
refactor(backend): camelcase exception for FederationClient_XX_X
This commit is contained in:
commit
36cc3350f8
@ -27,7 +27,8 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
'no-console': ['error'],
|
'no-console': 'error',
|
||||||
|
camelcase: ['error', { allow: ['FederationClient_*'] }],
|
||||||
'no-debugger': 'error',
|
'no-debugger': 'error',
|
||||||
'prettier/prettier': [
|
'prettier/prettier': [
|
||||||
'error',
|
'error',
|
||||||
@ -184,6 +185,7 @@ module.exports = {
|
|||||||
tsconfigRootDir: __dirname,
|
tsconfigRootDir: __dirname,
|
||||||
project: ['./tsconfig.json', '**/tsconfig.json'],
|
project: ['./tsconfig.json', '**/tsconfig.json'],
|
||||||
// this is to properly reference the referenced project database without requirement of compiling it
|
// this is to properly reference the referenced project database without requirement of compiling it
|
||||||
|
// eslint-disable-next-line camelcase
|
||||||
EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true,
|
EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
// eslint-disable-next-line camelcase
|
|
||||||
import { Client_1_0 } from './Client_1_0'
|
|
||||||
|
|
||||||
// eslint-disable-next-line camelcase
|
|
||||||
export class Client_1_1 extends Client_1_0 {}
|
|
||||||
@ -2,22 +2,19 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom
|
|||||||
|
|
||||||
import { ApiVersionType } from '@/federation/enum/apiVersionType'
|
import { ApiVersionType } from '@/federation/enum/apiVersionType'
|
||||||
|
|
||||||
// eslint-disable-next-line camelcase
|
import { FederationClient_1_0 } from './FederationClient_1_0'
|
||||||
import { Client_1_0 } from './Client_1_0'
|
import { FederationClient_1_1 } from './FederationClient_1_1'
|
||||||
// eslint-disable-next-line camelcase
|
|
||||||
import { Client_1_1 } from './Client_1_1'
|
|
||||||
|
|
||||||
// eslint-disable-next-line camelcase
|
type FederationClientType = FederationClient_1_0 | FederationClient_1_1
|
||||||
type FederationClient = Client_1_0 | Client_1_1
|
|
||||||
|
|
||||||
interface ClientInstance {
|
interface ClientInstance {
|
||||||
id: number
|
id: number
|
||||||
// eslint-disable-next-line no-use-before-define
|
// eslint-disable-next-line no-use-before-define
|
||||||
client: FederationClient
|
client: FederationClientType
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
||||||
export class Client {
|
export class FederationClient {
|
||||||
private static instanceArray: ClientInstance[] = []
|
private static instanceArray: ClientInstance[] = []
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,9 +27,9 @@ export class Client {
|
|||||||
private static createFederationClient = (dbCom: DbFederatedCommunity) => {
|
private static createFederationClient = (dbCom: DbFederatedCommunity) => {
|
||||||
switch (dbCom.apiVersion) {
|
switch (dbCom.apiVersion) {
|
||||||
case ApiVersionType.V1_0:
|
case ApiVersionType.V1_0:
|
||||||
return new Client_1_0(dbCom)
|
return new FederationClient_1_0(dbCom)
|
||||||
case ApiVersionType.V1_1:
|
case ApiVersionType.V1_1:
|
||||||
return new Client_1_1(dbCom)
|
return new FederationClient_1_1(dbCom)
|
||||||
default:
|
default:
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@ -44,14 +41,14 @@ export class Client {
|
|||||||
* This implementation let you subclass the Singleton class while keeping
|
* This implementation let you subclass the Singleton class while keeping
|
||||||
* just one instance of each subclass around.
|
* just one instance of each subclass around.
|
||||||
*/
|
*/
|
||||||
public static getInstance(dbCom: DbFederatedCommunity): FederationClient | null {
|
public static getInstance(dbCom: DbFederatedCommunity): FederationClientType | null {
|
||||||
const instance = Client.instanceArray.find((instance) => instance.id === dbCom.id)
|
const instance = FederationClient.instanceArray.find((instance) => instance.id === dbCom.id)
|
||||||
if (instance) {
|
if (instance) {
|
||||||
return instance.client
|
return instance.client
|
||||||
}
|
}
|
||||||
const client = Client.createFederationClient(dbCom)
|
const client = FederationClient.createFederationClient(dbCom)
|
||||||
if (client) {
|
if (client) {
|
||||||
Client.instanceArray.push({ id: dbCom.id, client } as ClientInstance)
|
FederationClient.instanceArray.push({ id: dbCom.id, client } as ClientInstance)
|
||||||
}
|
}
|
||||||
return client
|
return client
|
||||||
}
|
}
|
||||||
@ -4,8 +4,7 @@ import { GraphQLClient } from 'graphql-request'
|
|||||||
import { getPublicKey } from '@/federation/query/getPublicKey'
|
import { getPublicKey } from '@/federation/query/getPublicKey'
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
|
|
||||||
// eslint-disable-next-line camelcase
|
export class FederationClient_1_0 {
|
||||||
export class Client_1_0 {
|
|
||||||
dbCom: DbFederatedCommunity
|
dbCom: DbFederatedCommunity
|
||||||
endpoint: string
|
endpoint: string
|
||||||
client: GraphQLClient
|
client: GraphQLClient
|
||||||
3
backend/src/federation/client/FederationClient_1_1.ts
Normal file
3
backend/src/federation/client/FederationClient_1_1.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import { FederationClient_1_0 } from './FederationClient_1_0'
|
||||||
|
|
||||||
|
export class FederationClient_1_1 extends FederationClient_1_0 {}
|
||||||
@ -70,6 +70,7 @@ describe('validate Communities', () => {
|
|||||||
.into(DbFederatedCommunity)
|
.into(DbFederatedCommunity)
|
||||||
.values(variables1)
|
.values(variables1)
|
||||||
.orUpdate({
|
.orUpdate({
|
||||||
|
// eslint-disable-next-line camelcase
|
||||||
conflict_target: ['id', 'publicKey', 'apiVersion'],
|
conflict_target: ['id', 'publicKey', 'apiVersion'],
|
||||||
overwrite: ['end_point', 'last_announced_at'],
|
overwrite: ['end_point', 'last_announced_at'],
|
||||||
})
|
})
|
||||||
@ -102,6 +103,7 @@ describe('validate Communities', () => {
|
|||||||
.into(DbFederatedCommunity)
|
.into(DbFederatedCommunity)
|
||||||
.values(variables2)
|
.values(variables2)
|
||||||
.orUpdate({
|
.orUpdate({
|
||||||
|
// eslint-disable-next-line camelcase
|
||||||
conflict_target: ['id', 'publicKey', 'apiVersion'],
|
conflict_target: ['id', 'publicKey', 'apiVersion'],
|
||||||
overwrite: ['end_point', 'last_announced_at'],
|
overwrite: ['end_point', 'last_announced_at'],
|
||||||
})
|
})
|
||||||
@ -140,6 +142,7 @@ describe('validate Communities', () => {
|
|||||||
.into(DbFederatedCommunity)
|
.into(DbFederatedCommunity)
|
||||||
.values(variables3)
|
.values(variables3)
|
||||||
.orUpdate({
|
.orUpdate({
|
||||||
|
// eslint-disable-next-line camelcase
|
||||||
conflict_target: ['id', 'publicKey', 'apiVersion'],
|
conflict_target: ['id', 'publicKey', 'apiVersion'],
|
||||||
overwrite: ['end_point', 'last_announced_at'],
|
overwrite: ['end_point', 'last_announced_at'],
|
||||||
})
|
})
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom
|
|||||||
|
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
|
|
||||||
import { Client } from './client/Client'
|
import { FederationClient } from './client/FederationClient'
|
||||||
import { ApiVersionType } from './enum/apiVersionType'
|
import { ApiVersionType } from './enum/apiVersionType'
|
||||||
|
|
||||||
export function startValidateCommunities(timerInterval: number): void {
|
export function startValidateCommunities(timerInterval: number): void {
|
||||||
@ -37,7 +37,7 @@ export async function validateCommunities(): Promise<void> {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const client = Client.getInstance(dbCom)
|
const client = FederationClient.getInstance(dbCom)
|
||||||
const pubKey = await client?.getPublicKey()
|
const pubKey = await client?.getPublicKey()
|
||||||
if (pubKey && pubKey === dbCom.publicKey.toString()) {
|
if (pubKey && pubKey === dbCom.publicKey.toString()) {
|
||||||
await DbFederatedCommunity.update({ id: dbCom.id }, { verifiedAt: new Date() })
|
await DbFederatedCommunity.update({ id: dbCom.id }, { verifiedAt: new Date() })
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user