Skip to content

Commit

Permalink
Refactor const, enum, interface & dto definitions to a common compone…
Browse files Browse the repository at this point in the history
…nt (#510)

Closes #450 

- Eliminate duplicate constants
- No logic changes; mostly just file move/rename, update imports

Note, this is probably the largest of a number of planned refactoring
PRs, due to the large number of files being moved. Future PRs will focus
on a single module/service to refactor, and so should have a smaller
impact in number of files.
  • Loading branch information
JoeCap08055 committed Sep 17, 2024
1 parent 6e9ef49 commit 6f35e95
Show file tree
Hide file tree
Showing 188 changed files with 4,981 additions and 4,177 deletions.
4 changes: 2 additions & 2 deletions Docker/Dockerfile.account
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ COPY package* tsconfig* nest-cli.json ./

RUN npm ci

WORKDIR /build/libs/account-lib
WORKDIR /build/libs

COPY libs/account-lib ./
COPY libs ./

WORKDIR /build/apps/account-api

Expand Down
4 changes: 2 additions & 2 deletions Docker/Dockerfile.content-publishing
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ COPY package* tsconfig* nest-cli.json ./

RUN npm ci

WORKDIR /build/libs/content-publishing-lib
WORKDIR /build/libs

COPY libs/content-publishing-lib ./
COPY libs ./

WORKDIR /build/apps/content-publishing-api

Expand Down
4 changes: 2 additions & 2 deletions Docker/Dockerfile.content-watcher
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ COPY package* tsconfig* nest-cli.json ./

RUN npm ci

WORKDIR /build/libs/content-watcher-lib
WORKDIR /build/libs

COPY libs/content-watcher-lib ./
COPY libs ./

WORKDIR /build/apps/content-watcher

Expand Down
4 changes: 2 additions & 2 deletions Docker/Dockerfile.graph
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ COPY package* tsconfig* nest-cli.json ./

RUN npm ci

WORKDIR /build/libs/graph-lib
WORKDIR /build/libs

COPY libs/graph-lib ./
COPY libs ./

WORKDIR /build/apps/graph-api

Expand Down
3 changes: 2 additions & 1 deletion apps/account-api/src/api.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import { ConfigModule } from '#account-lib/config/config.module';
import { ConfigService } from '#account-lib/config/config.service';
import { BlockchainModule } from '#account-lib/blockchain/blockchain.module';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';
import { QueueModule, QueueConstants } from '#account-lib/queues';
import { QueueModule } from '#account-lib/queues';
import { AccountQueues as QueueConstants } from '#types/constants/queue.constants';
import { CacheModule } from '#account-lib/cache/cache.module';
import {
AccountsControllerV1,
Expand Down
13 changes: 6 additions & 7 deletions apps/account-api/src/controllers/v1/accounts-v1.controller.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { AccountResponseDto, RetireMsaPayloadResponseDto } from '#account-lib/types/dtos/accounts.response.dto';
import { WalletLoginRequestDto } from '#account-lib/types/dtos/wallet.login.request.dto';
import { WalletLoginConfigResponseDto } from '#account-lib/types/dtos/wallet.login.config.response.dto';
import { WalletLoginResponseDto } from '#account-lib/types/dtos/wallet.login.response.dto';
import { AccountsService } from '#account-api/services/accounts.service';
import { AccountResponseDto, RetireMsaPayloadResponseDto } from '#types/dtos/account/accounts.response.dto';
import { WalletLoginRequestDto } from '#types/dtos/account/wallet.login.request.dto';
import { WalletLoginConfigResponseDto } from '#types/dtos/account/wallet.login.config.response.dto';
import { WalletLoginResponseDto } from '#types/dtos/account/wallet.login.response.dto';
import { Body, Controller, Get, Post, HttpCode, HttpStatus, Logger, Param, HttpException } from '@nestjs/common';
import { ApiBody, ApiOkResponse, ApiCreatedResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import { ConfigService } from '#account-lib/config';
import { TransactionResponse } from '#account-lib/types/dtos';
import { RetireMsaRequestDto } from '#account-lib/types/dtos/accounts.request.dto';
import { SignerPayloadRaw } from '@polkadot/types/types';
import { AccountsService } from '#account-api/services';
import { RetireMsaRequestDto, TransactionResponse } from '#types/dtos/account';

@Controller('v1/accounts')
@ApiTags('v1/accounts')
Expand Down
14 changes: 7 additions & 7 deletions apps/account-api/src/controllers/v1/delegation-v1.controller.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { ReadOnlyGuard } from '#account-api/guards/read-only.guard';
import { DelegationService } from '#account-api/services';
import { TransactionResponse } from '#account-lib/types/dtos';
import { DelegationResponse } from '#account-lib/types/dtos/delegation.response.dto';
import { DelegationService } from '#account-api/services/delegation.service';
import {
RevokeDelegationPayloadResponseDto,
TransactionResponse,
RevokeDelegationPayloadRequestDto,
} from '#types/dtos/account';
import { DelegationResponse } from '#types/dtos/account/delegation.response.dto';
import {
Body,
Controller,
Expand All @@ -15,10 +19,6 @@ import {
UseGuards,
} from '@nestjs/common';
import { ApiBody, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import {
RevokeDelegationPayloadRequestDto,
RevokeDelegationPayloadResponseDto,
} from '#account-lib/types/dtos/revokeDelegation.request.dto';

@Controller('v1/delegation')
@ApiTags('v1/delegation')
Expand Down
8 changes: 4 additions & 4 deletions apps/account-api/src/controllers/v1/handles-v1.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ import {
UseGuards,
} from '@nestjs/common';
import { ApiBody, ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import { TransactionType } from '#account-lib/types/enums';
import { TransactionType } from '#types/enums/account-enums';
import { HandlesService } from '#account-api/services/handles.service';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';
import {
ChangeHandlePayloadRequest,
ChangeHandleRequest,
CreateHandleRequest,
HandleRequestDto,
} from '#account-lib/types/dtos/handles.request.dto';
import { TransactionResponse } from '#account-lib/types/dtos/transaction.response.dto';
import { HandleResponseDto } from '#account-lib/types/dtos/accounts.response.dto';
} from '#types/dtos/account/handles.request.dto';
import { TransactionResponse } from '#types/dtos/account/transaction.response.dto';
import { HandleResponseDto } from '#types/dtos/account/accounts.response.dto';
import { ReadOnlyGuard } from '#account-api/guards/read-only.guard';
import { u8aToHex, u8aWrapBytes } from '@polkadot/util';

Expand Down
13 changes: 6 additions & 7 deletions apps/account-api/src/controllers/v1/keys-v1.controller.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { KeysService } from '#account-api/services/keys.service';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';
import { TransactionType } from '#account-lib/types/enums';
import { TransactionType } from '#types/enums/account-enums';
import {
Controller,
Get,
Expand All @@ -13,19 +13,18 @@ import {
Post,
UseGuards,
Query,
BadRequestException,
} from '@nestjs/common';
import { ApiBody, ApiOkResponse, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
import { KeysRequestDto, AddKeyRequestDto } from '#account-lib/types/dtos/keys.request.dto';
import { TransactionResponse } from '#account-lib/types/dtos/transaction.response.dto';
import { KeysResponse } from '#account-lib/types/dtos/keys.response.dto';
import { ApiBody, ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import { KeysRequestDto, AddKeyRequestDto } from '#types/dtos/account/keys.request.dto';
import { TransactionResponse } from '#types/dtos/account/transaction.response.dto';
import { KeysResponse } from '#types/dtos/account/keys.response.dto';
import { ReadOnlyGuard } from '#account-api/guards/read-only.guard';
import {
AddNewPublicKeyAgreementPayloadRequest,
AddNewPublicKeyAgreementRequestDto,
PublicKeyAgreementRequestDto,
PublicKeyAgreementsKeyPayload,
} from '#account-lib/types/dtos/graphs.request.dto';
} from '#types/dtos/account/graphs.request.dto';

@Controller('v1/keys')
@ApiTags('v1/keys')
Expand Down
21 changes: 11 additions & 10 deletions apps/account-api/src/metadata.ts

Large diffs are not rendered by default.

19 changes: 8 additions & 11 deletions apps/account-api/src/services/accounts.service.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
import { Injectable, Logger } from '@nestjs/common';
import { validateSignin, validateSignup } from '@projectlibertylabs/siwf';
import { SignerPayloadRaw } from '@polkadot/types/types';
import { BlockchainService } from '#account-lib/blockchain/blockchain.service';
import { TransactionType } from '#account-lib';
import { TransactionType } from '#types/enums/account-enums';
import { ConfigService } from '#account-lib/config/config.service';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';
import { WalletLoginRequestDto, PublishSIWFSignupRequestDto } from '#types/dtos/account/wallet.login.request.dto';
import { WalletLoginResponseDto } from '#types/dtos/account/wallet.login.response.dto';
import {
AccountResponseDto,
MsaIdResponseDto,
PublishSIWFSignupRequestDto,
RetireMsaPayloadResponseDto,
TransactionResponse,
WalletLoginConfigResponseDto,
WalletLoginRequestDto,
WalletLoginResponseDto,
} from '#account-lib/types/dtos';
import { PublishRetireMsaRequestDto, RetireMsaRequestDto } from '#account-lib/types/dtos/accounts.request.dto';
import { ConfigService } from '#account-lib/config';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';
} from '#types/dtos/account/accounts.response.dto';
import { WalletLoginConfigResponseDto } from '#types/dtos/account/wallet.login.config.response.dto';
import { RetireMsaRequestDto, TransactionResponse, PublishRetireMsaRequestDto } from '#types/dtos/account';

@Injectable()
export class AccountsService {
Expand Down
14 changes: 7 additions & 7 deletions apps/account-api/src/services/delegation.service.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { BlockchainService } from '#account-lib/blockchain/blockchain.service';
import { ConfigService } from '#account-lib/config/config.service';
import { TransactionResponse } from '#account-lib/types/dtos';
import { DelegationResponse } from '#account-lib/types/dtos/delegation.response.dto';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';
import {
PublishRevokeDelegationRequestDto,
RevokeDelegationPayloadRequestDto,
RevokeDelegationPayloadResponseDto,
} from '#account-lib/types/dtos/revokeDelegation.request.dto';
RevokeDelegationPayloadRequestDto,
TransactionResponse,
PublishRevokeDelegationRequestDto,
} from '#types/dtos/account';
import { DelegationResponse } from '#types/dtos/account/delegation.response.dto';
import { TransactionType } from '#types/enums';
import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common';
import { TransactionType } from '#account-lib';
import { EnqueueService } from '#account-lib/services/enqueue-request.service';

@Injectable()
export class DelegationService {
Expand Down
4 changes: 2 additions & 2 deletions apps/account-api/src/services/handles.service.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Injectable, Logger } from '@nestjs/common';
import { BlockchainService } from '#account-lib/blockchain/blockchain.service';
import { HandleResponseDto } from '#account-lib/types/dtos/accounts.response.dto';
import { HandleResponseDto } from '#types/dtos/account/accounts.response.dto';
import { BlockchainConstants } from '#account-lib/blockchain/blockchain-constants';
import { HandleRequestDto } from '#account-lib/types/dtos';
import { HandleRequestDto } from '#types/dtos/account';

@Injectable()
export class HandlesService {
Expand Down
4 changes: 2 additions & 2 deletions apps/account-api/src/services/keys.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { BlockchainService } from '#account-lib/blockchain/blockchain.service';
import { KeysResponse } from '#account-lib/types/dtos/keys.response.dto';
import { KeysResponse } from '#types/dtos/account/keys.response.dto';
import { ConflictException, Injectable, InternalServerErrorException, Logger } from '@nestjs/common';
import { ConfigService } from '#account-lib/config';
import { EnvironmentInterface, EnvironmentType, Graph } from '@dsnp/graph-sdk';
Expand All @@ -8,7 +8,7 @@ import {
AddNewPublicKeyAgreementPayloadRequest,
ItemActionType,
ItemizedSignaturePayloadDto,
} from '#account-lib/types/dtos/graphs.request.dto';
} from '#types/dtos/account/graphs.request.dto';
import { u8aToHex, u8aWrapBytes } from '@polkadot/util';
import { BlockchainConstants } from '#account-lib/blockchain/blockchain-constants';

Expand Down
3 changes: 1 addition & 2 deletions apps/account-api/test/accounts.controller.e2e-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ import { ApiModule } from '../src/api.module';
import { setupProviderAndUsers } from './e2e-setup.mock.spec';
import { u8aToHex } from '@polkadot/util';
import { cryptoWaitReady } from '@polkadot/util-crypto';
import { RetireMsaRequestDto } from '#account-lib/types/dtos/accounts.request.dto';
import { RetireMsaPayloadResponseDto, WalletLoginRequestDto } from '#account-lib/types/dtos';
import { CacheMonitorService } from '#account-lib/cache/cache-monitor.service';
import { WalletLoginRequestDto, RetireMsaPayloadResponseDto, RetireMsaRequestDto } from '#types/dtos/account';

describe('Account Controller', () => {
let app: INestApplication;
Expand Down
1 change: 1 addition & 0 deletions apps/account-api/test/app.e2e-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { INestApplication, ValidationPipe } from '@nestjs/common';
import { Test, TestingModule } from '@nestjs/testing';
import request from 'supertest';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { WalletLoginRequestDto } from '#types/dtos/account';
import { ApiModule } from '../src/api.module';
import { CacheMonitorService } from '#account-lib/cache/cache-monitor.service';

Expand Down
2 changes: 1 addition & 1 deletion apps/account-api/test/delegations.controller.e2e-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import { ChainUser, ExtrinsicHelper, Schema, SchemaBuilder } from '@projectliber
import { ApiModule } from '../src/api.module';
import { setupProviderAndUsers } from './e2e-setup.mock.spec';
import { CacheMonitorService } from '#account-lib/cache/cache-monitor.service';
import { RevokeDelegationPayloadRequestDto } from '#account-lib/types/dtos/revokeDelegation.request.dto';
import { u8aToHex } from '@polkadot/util';
import { RevokeDelegationPayloadRequestDto } from '#types/dtos/account';

let users: ChainUser[];
let provider: ChainUser;
Expand Down
2 changes: 1 addition & 1 deletion apps/account-api/test/keys.controller.e2e-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { EventEmitter2 } from '@nestjs/event-emitter';
import request from 'supertest';
import { AddKeyData, ChainUser, ExtrinsicHelper, createKeys } from '@projectlibertylabs/frequency-scenario-template';
import { KeyringPair } from '@polkadot/keyring/types';
import { KeysRequestDto } from '#account-lib/types/dtos';
import { KeysRequestDto } from '#types/dtos/account';
import { ApiModule } from '../src/api.module';
import {
generateAddPublicKeyExtrinsic,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
SIWFOpts,
SIWFWebhookRsp,
TxWebhookOpts,
} from '#account-lib/types/dtos/transaction.request.dto';
} from '#types/dtos/account/transaction.request.dto';
import { ITxStatus } from '#account-lib/interfaces/tx-status.interface';

export function createWebhookRsp(
Expand Down
11 changes: 6 additions & 5 deletions apps/account-worker/src/transaction_notifier/notifier.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ import Redis from 'ioredis';
import { MILLISECONDS_PER_SECOND } from 'time-constants';
import axios from 'axios';
import { BlockchainService } from '#account-lib/blockchain/blockchain.service';
import { TransactionType } from '#account-lib/types/enums';
import { RedisUtils, SECONDS_PER_BLOCK } from '#account-lib';
import { TransactionType } from '#types/enums/account-enums';
import { RedisUtils } from '#account-lib';
import { TxWebhookRsp } from '#types/dtos/account';
import { SECONDS_PER_BLOCK } from '#types/constants/blockchain-constants';
import { createWebhookRsp } from '#account-worker/transaction_notifier/notifier.service.helper.createWebhookRsp';
import { BlockchainScannerService } from '#account-lib/utils/blockchain-scanner.service';
import { SchedulerRegistry } from '@nestjs/schedule';
Expand All @@ -15,9 +17,8 @@ import { HexString } from '@polkadot/util/types';
import { ITxStatus } from '#account-lib/interfaces/tx-status.interface';
import { FrameSystemEventRecord } from '@polkadot/types/lookup';
import { ConfigService } from '#account-lib/config/config.service';
import { QueueConstants } from '#account-lib/queues';
import { ACCOUNT_SERVICE_WATCHER_PREFIX } from '#types/constants';
import { CapacityCheckerService } from '#account-lib/blockchain/capacity-checker.service';
import { TxWebhookRsp } from '#account-lib/types/dtos';

@Injectable()
export class TxnNotifierService
Expand Down Expand Up @@ -251,7 +252,7 @@ export class TxnNotifierService
}

async getWebhookList(msaId: number): Promise<string[]> {
const redisKey = `${QueueConstants.REDIS_WATCHER_PREFIX}:${msaId}`;
const redisKey = `${ACCOUNT_SERVICE_WATCHER_PREFIX}:${msaId}`;
const redisList = await this.cacheManager.lrange(redisKey, 0, -1);

return redisList || [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ import { SchedulerRegistry } from '@nestjs/schedule';
import { BlockchainService, ICapacityInfo } from '#account-lib/blockchain/blockchain.service';
import { createKeys } from '#account-lib/blockchain/create-keys';
import { NonceService } from '#account-lib/services/nonce.service';
import { TransactionType } from '#account-lib/types/enums';
import { QueueConstants } from '#account-lib/queues';
import { TransactionType } from '#types/enums/account-enums';
import { AccountQueues as QueueConstants } from '#types/constants/queue.constants';
import { BaseConsumer } from '#account-worker/BaseConsumer';
import { RedisUtils } from '#account-lib';
import { TransactionData } from '#types/dtos/account';
import { ConfigService } from '#account-lib/config/config.service';
import { ITxStatus } from '#account-lib/interfaces/tx-status.interface';
import { HexString } from '@polkadot/util/types';
Expand All @@ -24,7 +25,6 @@ import {
CapacityCheckerService,
} from '#account-lib/blockchain/capacity-checker.service';
import { OnEvent } from '@nestjs/event-emitter';
import { TransactionData } from '#account-lib/types/dtos';
import { getSignerForRawSignature } from '#account-lib/utils/utility';

export const SECONDS_PER_BLOCK = 12;
Expand Down
3 changes: 2 additions & 1 deletion apps/content-publishing-api/src/api.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import { ExpressAdapter } from '@bull-board/express';
import { MulterModule } from '@nestjs/platform-express';
import { DevelopmentControllerV1 } from './controllers/v1/development.controller.v1';
import { ConfigModule, ConfigService } from '#content-publishing-lib/config';
import { QueuesModule, QueueConstants } from '#content-publishing-lib/queues';
import { QueuesModule } from '#content-publishing-lib/queues';
import { ContentPublishingQueues as QueueConstants } from '#types/constants/queue.constants';
import { IpfsService } from '#content-publishing-lib/utils/ipfs.client';
import { ApiService } from './api.service';
import { HealthController } from './controllers/health.controller';
Expand Down
14 changes: 7 additions & 7 deletions apps/content-publishing-api/src/api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@ import { InjectRedis } from '@songkeys/nestjs-redis';
import Redis from 'ioredis';
import { HttpErrorByCode } from '@nestjs/common/utils/http-error-by-code.util';
import {
AnnouncementTypeDto,
RequestTypeDto,
AnnouncementResponseDto,
AssetIncludedRequestDto,
isImage,
UploadResponseDto,
AttachmentType,
} from '#content-publishing-lib/dtos';
import { IRequestJob, IAssetMetadata, IAssetJob } from '#content-publishing-lib/interfaces';
import { REQUEST_QUEUE_NAME, ASSET_QUEUE_NAME } from '#content-publishing-lib/queues/queue.constants';
} from '#types/dtos/content-publishing';
import { IRequestJob, IAssetMetadata, IAssetJob } from '#types/interfaces/content-publishing';
import { ContentPublishingQueues as QueueConstants } from '#types/constants/queue.constants';
import { calculateIpfsCID } from '#content-publishing-lib/utils/ipfs';
import {
getAssetMetadataKey,
getAssetDataKey,
STORAGE_EXPIRE_UPPER_LIMIT_SECONDS,
} from '#content-publishing-lib/utils/redis';
import { AnnouncementTypeName } from '#types/enums';

@Injectable()
export class ApiService {
private readonly logger: Logger;

constructor(
@InjectRedis() private redis: Redis,
@InjectQueue(REQUEST_QUEUE_NAME) private requestQueue: Queue,
@InjectQueue(ASSET_QUEUE_NAME) private assetQueue: Queue,
@InjectQueue(QueueConstants.REQUEST_QUEUE_NAME) private requestQueue: Queue,
@InjectQueue(QueueConstants.ASSET_QUEUE_NAME) private assetQueue: Queue,
) {
this.logger = new Logger(this.constructor.name);
}

async enqueueRequest(
announcementType: AnnouncementTypeDto,
announcementType: AnnouncementTypeName,
dsnpUserId: string,
content: RequestTypeDto,
assetToMimeType?: IRequestJob['assetToMimeType'],
Expand Down
Loading

0 comments on commit 6f35e95

Please sign in to comment.