Skip to content

Commit

Permalink
Merge pull request #529 from neet/refactor-channel
Browse files Browse the repository at this point in the history
chore: Introduce barrelsby
  • Loading branch information
neet committed Nov 22, 2022
2 parents 691b878 + 88898df commit 00ece00
Show file tree
Hide file tree
Showing 70 changed files with 584 additions and 258 deletions.
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"agpl",
"aspida",
"asteasolutions",
"barrelsby",
"bodyparser",
"chromaui",
"cloudsdktool",
Expand Down
2 changes: 1 addition & 1 deletion packages/@neet/vschedule-api-spec/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@types/eslint": "^8.4.10",
"@types/mkdirp": "^1.0.2",
"@types/rimraf": "^3.0.2",
"eslint": "^8.27.0",
"eslint": "^8.28.0",
"mkdirp": "^1.0.4",
"rimraf": "^3.0.2",
"typescript": "^4.9.3",
Expand Down
12 changes: 12 additions & 0 deletions packages/@neet/vschedule-api/barrelsby.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"directory": ["./src/domain", "./src/app", "./src/adapters", "./src/infra"],
"delete": true,
"exclude": [
"(.+?)\\.spec\\.(tsx?|jsx?)",
"(.+?)\\.stories\\.(tsx?|jsx?)",
"generated",
"./src/infra/setup.ts",
"./src/infra/server.ts"
],
"location": "all"
}
16 changes: 9 additions & 7 deletions packages/@neet/vschedule-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"build": "yarn run codegen && tsc",
"start": "node ./dist/src/infra/server.js",
"dev": "ts-node-dev --respawn --transpile-only --exit-child ./src/infra/server",
"test": "jest --runInBand --coverage"
"test": "jest --runInBand --coverage",
"generate-barrels": "barrelsby -c barrelsby.json && eslint --fix './src/**/index.ts'"
},
"dependencies": {
"@google-cloud/connect-firestore": "^2.0.2",
Expand All @@ -27,14 +28,14 @@
"cosmiconfig-toml-loader": "^1.0.0",
"dayjs": "^1.11.6",
"express": "^4.18.2",
"express-openapi-validator": "^4.13.8",
"express-openapi-validator": "^5.0.0",
"express-session": "^1.17.3",
"express-winston": "^4.2.0",
"get-image-colors": "^4.0.1",
"googleapis": "^109.0.1",
"immer": "^9.0.16",
"inversify": "^6.0.1",
"memfs": "^3.4.11",
"memfs": "^3.4.12",
"mkdirp": "^1.0.4",
"nanoid": "^3.3.4",
"node-fetch": "^2.6.7",
Expand All @@ -58,12 +59,12 @@
"@neet/eslint-plugin-vschedule": "workspace:^",
"@neet/tsconfig-vschedule": "workspace:^",
"@quramy/jest-prisma-node": "^1.1.2",
"@swc/core": "^1.3.18",
"@swc/core": "^1.3.19",
"@swc/jest": "^0.2.23",
"@types/bcryptjs": "^2.4.2",
"@types/body-parser-xml": "^2.0.2",
"@types/color": "^3.0.3",
"@types/cors": "^2",
"@types/cors": "^2.8.12",
"@types/eslint": "^8.4.10",
"@types/express": "^4.17.14",
"@types/express-session": "^1.17.5",
Expand All @@ -72,13 +73,14 @@
"@types/mkdirp": "^1.0.2",
"@types/node": "^18.11.9",
"@types/node-fetch": "^2.6.2",
"@types/passport": "^0.4.7",
"@types/passport": "^1.0.11",
"@types/passport-local": "^1.0.34",
"@types/sharp": "^0.31.0",
"@types/supertest": "^2.0.12",
"@types/swagger-ui-express": "^4.1.3",
"@types/validator": "^13.7.10",
"eslint": "^8.27.0",
"barrelsby": "^2.5.1",
"eslint": "^8.28.0",
"execa": "^5.1.1",
"jest": "^29.3.1",
"jest-date-mock": "^1.0.8",
Expand Down
12 changes: 8 additions & 4 deletions packages/@neet/vschedule-api/src/adapters/controllers/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ import {
} from 'routing-controllers';

import { CreateUser } from '../../app';
import { User } from '../../domain';
import { Methods } from '../generated/auth/signup';
import { RestPresenter } from '../mappers/rest-presenter';
import { RestPresenter } from '../mappers';

@injectable()
@JsonController('/auth')
Expand All @@ -27,8 +28,11 @@ export class AuthController {

@Post('/login')
@Authorized()
public login(@Req() req: Request) {
return this._presenter.presentUser(req.user);
public login(@Req() req: Request, @Res() res: Response) {
if (req.user == null) {
return res.status(500);
}
return this._presenter.presentUser(req.user as User);
}

@Post('/logout')
Expand All @@ -45,7 +49,7 @@ export class AuthController {
@OnUndefined(204)
public verifyCredentials(@Req() req: Request) {
if (req.user != null) {
return this._presenter.presentUser(req.user);
return this._presenter.presentUser(req.user as User);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/**
* @file Automatically generated by barrelsby.
*/

export * from './auth';
export * from './rest/index';
export * from './websub/index';
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/**
* @file Automatically generated by barrelsby.
*/

export * from './v1/index';
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* @file Automatically generated by barrelsby.
*/

export * from './media';
export * from './organizations';
export * from './performers';
export * from './streams';
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Get, JsonController, Param, QueryParams } from 'routing-controllers';
import { ListOrganization, ShowOrganization } from '../../../../app';
import { Methods } from '../../../generated/rest/v1/organizations';
import { Methods as MethodsId } from '../../../generated/rest/v1/organizations/_organizationId@string';
import { RestPresenter } from '../../../mappers/rest-presenter';
import { RestPresenter } from '../../../mappers';

@injectable()
@JsonController()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
SubscribeToPerformer,
} from '../../../../app';
import { Methods } from '../../../generated/rest/v1/performers';
import { RestPresenter } from '../../../mappers/rest-presenter';
import { RestPresenter } from '../../../mappers';

@injectable()
@JsonController('/rest/v1/performers')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {

import { ListStreams, ShowStream } from '../../../../app';
import { Methods } from '../../../generated/rest/v1/streams';
import { RestPresenter } from '../../../mappers/rest-presenter';
import { RestPresenter } from '../../../mappers';

@injectable()
@Controller('/rest/v1/streams')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/**
* @file Automatically generated by barrelsby.
*/

export * from './youtube';
8 changes: 8 additions & 0 deletions packages/@neet/vschedule-api/src/adapters/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* @file Automatically generated by barrelsby.
*/

export * from './controllers/index';
export * from './mappers/index';
export * from './query-services/index';
export * from './repositories/index';
7 changes: 7 additions & 0 deletions packages/@neet/vschedule-api/src/adapters/mappers/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/**
* @file Automatically generated by barrelsby.
*/

export * from './prisma-dto-mapper';
export * from './prisma-entity-mapper';
export * from './rest-presenter';
31 changes: 7 additions & 24 deletions packages/@neet/vschedule-api/src/adapters/query-services/index.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,8 @@
import { ContainerModule } from 'inversify';
/**
* @file Automatically generated by barrelsby.
*/

import {
IOrganizationQueryService,
IPerformerQueryService,
IStreamQueryService,
} from '../../app';
import { TYPES } from '../../types';
import { OrganizationQueryServicePrisma } from './organization-query-service-prisma';
import { PerformerQueryServicePrisma } from './performer-query-service-prisma';
import { StreamQueryServicePrisma } from './stream-query-service-prisma';

const prisma = new ContainerModule((bind) => {
bind<IStreamQueryService>(TYPES.StreamQueryService).to(
StreamQueryServicePrisma,
);
bind<IPerformerQueryService>(TYPES.PerformerQueryService).to(
PerformerQueryServicePrisma,
);
bind<IOrganizationQueryService>(TYPES.OrganizationQueryService).to(
OrganizationQueryServicePrisma,
);
});

export const queryServices = { prisma };
export * from './organization-query-service-prisma';
export * from './performer-query-service-prisma';
export * from './query-services';
export * from './stream-query-service-prisma';
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from '../../app';
import { OrganizationId, YoutubeChannelId } from '../../domain';
import { TYPES } from '../../types';
import { transferOrganizationFromPrisma } from '../mappers/prisma-dto-mapper';
import { transferOrganizationFromPrisma } from '../mappers';

const DEFAULT_INCLUDE = Object.freeze({
actor: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from '../../app';
import { PerformerId, YoutubeChannelId } from '../../domain';
import { TYPES } from '../../types';
import { transferPerformerFromPrisma } from '../mappers/prisma-dto-mapper';
import { transferPerformerFromPrisma } from '../mappers';

const DEFAULT_INCLUDE = {
actor: {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { ContainerModule } from 'inversify';

import {
IOrganizationQueryService,
IPerformerQueryService,
IStreamQueryService,
} from '../../app';
import { TYPES } from '../../types';
import { OrganizationQueryServicePrisma } from './organization-query-service-prisma';
import { PerformerQueryServicePrisma } from './performer-query-service-prisma';
import { StreamQueryServicePrisma } from './stream-query-service-prisma';

const prisma = new ContainerModule((bind) => {
bind<IStreamQueryService>(TYPES.StreamQueryService).to(
StreamQueryServicePrisma,
);
bind<IPerformerQueryService>(TYPES.PerformerQueryService).to(
PerformerQueryServicePrisma,
);
bind<IOrganizationQueryService>(TYPES.OrganizationQueryService).to(
OrganizationQueryServicePrisma,
);
});

export const queryServices = { prisma };
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
} from '../../app';
import { StreamId } from '../../domain';
import { TYPES } from '../../types';
import { transferStreamFromPrisma } from '../mappers/prisma-dto-mapper';
import { transferStreamFromPrisma } from '../mappers';

const SHARED_INCLUDE = {
thumbnail: true,
Expand Down
72 changes: 4 additions & 68 deletions packages/@neet/vschedule-api/src/adapters/repositories/index.ts
Original file line number Diff line number Diff line change
@@ -1,75 +1,11 @@
import { ContainerModule } from 'inversify';
/**
* @file Automatically generated by barrelsby.
*/

import {
IMediaAttachmentRepository,
IOrganizationRepository,
IPerformerRepository,
IResubscriptionTaskRepository,
IStreamRepository,
ITokenRepository,
IUserRepository,
} from '../../domain';
import { TYPES } from '../../types';
import { MediaAttachmentRepositoryPrisma } from './media-attachment-repository-prisma';
import { OrganizationRepositoryPrisma } from './organization-repository-prisma';
import { PerformerRepositoryPrisma } from './performer-repository-prisma';
import { ResubscriptionTaskRepositoryCloudTasks } from './resubscription-task-repository-cloud-tasks';
import { ResubscriptionTaskRepositoryInMemory } from './resubscription-task-repository-in-memory';
import { StreamRepositoryPrisma } from './stream-repository-prisma';
import { TokenRepositoryPrisma } from './token-repository-prisma';
import { UserRepositoryPrisma } from './user-repository-prisma';

const prisma = new ContainerModule((bind) => {
bind<IPerformerRepository>(TYPES.PerformerRepository).to(
PerformerRepositoryPrisma,
);

bind<IOrganizationRepository>(TYPES.OrganizationRepository).to(
OrganizationRepositoryPrisma,
);

bind<IStreamRepository>(TYPES.StreamRepository).to(StreamRepositoryPrisma);

bind<IMediaAttachmentRepository>(TYPES.MediaAttachmentRepository).to(
MediaAttachmentRepositoryPrisma,
);

bind<IResubscriptionTaskRepository>(TYPES.ResubscriptionTaskRepository).to(
ResubscriptionTaskRepositoryCloudTasks,
);

bind<IUserRepository>(TYPES.UserRepository).to(UserRepositoryPrisma);

bind<ITokenRepository>(TYPES.TokenRepository).to(TokenRepositoryPrisma);
});

const withoutGcp = new ContainerModule((bind) => {
bind<IPerformerRepository>(TYPES.PerformerRepository).to(
PerformerRepositoryPrisma,
);

bind<IOrganizationRepository>(TYPES.OrganizationRepository).to(
OrganizationRepositoryPrisma,
);

bind<IStreamRepository>(TYPES.StreamRepository).to(StreamRepositoryPrisma);

bind<IMediaAttachmentRepository>(TYPES.MediaAttachmentRepository).to(
MediaAttachmentRepositoryPrisma,
);
bind<IUserRepository>(TYPES.UserRepository).to(UserRepositoryPrisma);

bind<ITokenRepository>(TYPES.TokenRepository).to(TokenRepositoryPrisma);

bind<IResubscriptionTaskRepository>(TYPES.ResubscriptionTaskRepository)
.to(ResubscriptionTaskRepositoryInMemory)
.inSingletonScope();
});

export const repositories = { prisma, withoutGcp };
export * from './media-attachment-repository-prisma';
export * from './organization-repository-prisma';
export * from './performer-repository-prisma';
export * from './repositories';
export * from './resubscription-task-repository-cloud-tasks';
export * from './resubscription-task-repository-in-memory';
export * from './stream-repository-prisma';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
MediaAttachmentId,
} from '../../domain';
import { TYPES } from '../../types';
import { rehydrateMediaAttachmentFromPrisma } from '../mappers/prisma-entity-mapper';
import { rehydrateMediaAttachmentFromPrisma } from '../mappers';

@injectable()
export class MediaAttachmentRepositoryPrisma
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
YoutubeChannelId,
} from '../../domain';
import { TYPES } from '../../types';
import { rehydrateOrganizationFromPrisma } from '../mappers/prisma-entity-mapper';
import { rehydrateOrganizationFromPrisma } from '../mappers';

@injectable()
export class OrganizationRepositoryPrisma implements IOrganizationRepository {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
YoutubeChannelId,
} from '../../domain';
import { TYPES } from '../../types';
import { rehydratePerformerFromPrisma } from '../mappers/prisma-entity-mapper';
import { rehydratePerformerFromPrisma } from '../mappers';

@injectable()
export class PerformerRepositoryPrisma implements IPerformerRepository {
Expand Down
Loading

1 comment on commit 00ece00

@vercel
Copy link

@vercel vercel bot commented on 00ece00 Nov 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.