From 2b431bee7899ccb1e02ee1697ce3f5d8035eb1d5 Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Fri, 25 Jan 2019 10:08:50 +0100 Subject: [PATCH] Separate services and routes into features --- .../server/src/application/Application.ts | 30 +++++++++++-------- .../src/{routes => comment}/CommentRoutes.ts | 4 +-- .../{services => comment}/CommentService.ts | 2 +- .../{services => comment}/ICommentService.ts | 0 packages/server/src/comment/index.ts | 3 ++ packages/server/src/routes/index.ts | 4 --- packages/server/src/services/index.ts | 8 ----- .../src/{services => site}/ISiteService.ts | 0 .../server/src/{routes => site}/SiteRoutes.ts | 4 +-- .../src/{services => site}/SiteService.ts | 2 +- packages/server/src/site/index.ts | 3 ++ .../src/{services => story}/IStoryService.ts | 0 .../src/{routes => story}/StoryRoutes.ts | 4 +-- .../src/{services => story}/StoryService.ts | 4 +-- packages/server/src/story/index.ts | 3 ++ .../src/{services => team}/ITeamService.ts | 0 .../src/{routes => team}/TeamRoutes.test.ts | 0 .../server/src/{routes => team}/TeamRoutes.ts | 4 +-- .../src/{services => team}/TeamService.ts | 2 +- packages/server/src/team/index.ts | 3 ++ 20 files changed, 42 insertions(+), 38 deletions(-) rename packages/server/src/{routes => comment}/CommentRoutes.ts (95%) rename packages/server/src/{services => comment}/CommentService.ts (98%) rename packages/server/src/{services => comment}/ICommentService.ts (100%) create mode 100644 packages/server/src/comment/index.ts rename packages/server/src/{services => site}/ISiteService.ts (100%) rename packages/server/src/{routes => site}/SiteRoutes.ts (92%) rename packages/server/src/{services => site}/SiteService.ts (94%) create mode 100644 packages/server/src/site/index.ts rename packages/server/src/{services => story}/IStoryService.ts (100%) rename packages/server/src/{routes => story}/StoryRoutes.ts (82%) rename packages/server/src/{services => story}/StoryService.ts (91%) create mode 100644 packages/server/src/story/index.ts rename packages/server/src/{services => team}/ITeamService.ts (100%) rename packages/server/src/{routes => team}/TeamRoutes.test.ts (100%) rename packages/server/src/{routes => team}/TeamRoutes.ts (89%) rename packages/server/src/{services => team}/TeamService.ts (91%) create mode 100644 packages/server/src/team/index.ts diff --git a/packages/server/src/application/Application.ts b/packages/server/src/application/Application.ts index 081db71..572b614 100644 --- a/packages/server/src/application/Application.ts +++ b/packages/server/src/application/Application.ts @@ -1,5 +1,10 @@ +import * as comment from '../comment' import * as middleware from '../middleware' import * as routes from '../routes' +import * as services from '../services' +import * as site from '../site' +import * as story from '../story' +import * as team from '../team' import express from 'express' import {AsyncRouter, TransactionalRouter} from '../router' import {IApplication} from './IApplication' @@ -8,7 +13,6 @@ import {IDatabase} from '../database/IDatabase' import {ILogger} from '../logger/ILogger' import {IRoutes} from '@rondo/common' import {ITransactionManager} from '../database/ITransactionManager' -import * as services from '../services' import {loggerFactory, LoggerFactory} from '../logger/LoggerFactory' import {urlencoded, json} from 'body-parser' @@ -17,10 +21,10 @@ export class Application implements IApplication { readonly server: express.Application readonly userService: services.IUserService - readonly teamService: services.ITeamService - readonly siteService: services.ISiteService - readonly storyService: services.IStoryService - readonly commentService: services.ICommentService + readonly teamService: team.ITeamService + readonly siteService: site.ISiteService + readonly storyService: story.IStoryService + readonly commentService: comment.ICommentService readonly authenticator: middleware.Authenticator @@ -30,11 +34,11 @@ export class Application implements IApplication { this.transactionManager = database.transactionManager this.userService = new services.UserService(this.transactionManager) - this.teamService = new services.TeamService(this.transactionManager) - this.siteService = new services.SiteService(this.transactionManager) - this.storyService = new services.StoryService( + this.teamService = new team.TeamService(this.transactionManager) + this.siteService = new site.SiteService(this.transactionManager) + this.storyService = new story.StoryService( this.transactionManager, this.siteService) - this.commentService = new services.CommentService(this.transactionManager) + this.commentService = new comment.CommentService(this.transactionManager) this.authenticator = new middleware.Authenticator(this.userService) @@ -96,22 +100,22 @@ export class Application implements IApplication { this.createTransactionalRouter(), ).handle) - router.use('/api', new routes.TeamRoutes( + router.use('/api', new team.TeamRoutes( this.teamService, this.createTransactionalRouter(), ).handle) - router.use('/api', new routes.SiteRoutes( + router.use('/api', new site.SiteRoutes( this.siteService, this.createTransactionalRouter(), ).handle) - router.use('/api', new routes.StoryRoutes( + router.use('/api', new story.StoryRoutes( this.storyService, this.createTransactionalRouter(), ).handle) - router.use('/api', new routes.CommentRoutes( + router.use('/api', new comment.CommentRoutes( this.commentService, this.createTransactionalRouter(), ).handle) diff --git a/packages/server/src/routes/CommentRoutes.ts b/packages/server/src/comment/CommentRoutes.ts similarity index 95% rename from packages/server/src/routes/CommentRoutes.ts rename to packages/server/src/comment/CommentRoutes.ts index 7cc70c8..a7fbdc4 100644 --- a/packages/server/src/routes/CommentRoutes.ts +++ b/packages/server/src/comment/CommentRoutes.ts @@ -1,7 +1,7 @@ import {AsyncRouter} from '../router' -import {BaseRoute} from './BaseRoute' +import {BaseRoute} from '../routes/BaseRoute' import {IAPIDef} from '@rondo/common' -import {ICommentService} from '../services/ICommentService' +import {ICommentService} from './ICommentService' import {ensureLoggedInApi} from '../middleware' export class CommentRoutes extends BaseRoute { diff --git a/packages/server/src/services/CommentService.ts b/packages/server/src/comment/CommentService.ts similarity index 98% rename from packages/server/src/services/CommentService.ts rename to packages/server/src/comment/CommentService.ts index 72b43bb..cda72bb 100644 --- a/packages/server/src/services/CommentService.ts +++ b/packages/server/src/comment/CommentService.ts @@ -1,4 +1,4 @@ -import {BaseService} from './BaseService' +import {BaseService} from '../services/BaseService' import {Comment} from '../entities/Comment' import {ICommentService} from './ICommentService' import {IComment, ICommentTree} from '@rondo/common' diff --git a/packages/server/src/services/ICommentService.ts b/packages/server/src/comment/ICommentService.ts similarity index 100% rename from packages/server/src/services/ICommentService.ts rename to packages/server/src/comment/ICommentService.ts diff --git a/packages/server/src/comment/index.ts b/packages/server/src/comment/index.ts new file mode 100644 index 0000000..3857ded --- /dev/null +++ b/packages/server/src/comment/index.ts @@ -0,0 +1,3 @@ +export * from './CommentRoutes' +export * from './CommentService' +export * from './ICommentService' diff --git a/packages/server/src/routes/index.ts b/packages/server/src/routes/index.ts index 8475fcc..a908140 100644 --- a/packages/server/src/routes/index.ts +++ b/packages/server/src/routes/index.ts @@ -1,8 +1,4 @@ export * from './BaseRoute' -export * from './CommentRoutes' export * from './LoginRoutes' -export * from './SiteRoutes' -export * from './StoryRoutes' -export * from './TeamRoutes' export * from './UserRoutes' export * from './application' diff --git a/packages/server/src/services/index.ts b/packages/server/src/services/index.ts index 5ca110e..b41f3f1 100644 --- a/packages/server/src/services/index.ts +++ b/packages/server/src/services/index.ts @@ -1,10 +1,2 @@ -export * from './CommentService' -export * from './ICommentService' -export * from './ISiteService' -export * from './IStoryService' -export * from './ITeamService' export * from './IUserService' -export * from './SiteService' -export * from './StoryService' -export * from './TeamService' export * from './UserService' diff --git a/packages/server/src/services/ISiteService.ts b/packages/server/src/site/ISiteService.ts similarity index 100% rename from packages/server/src/services/ISiteService.ts rename to packages/server/src/site/ISiteService.ts diff --git a/packages/server/src/routes/SiteRoutes.ts b/packages/server/src/site/SiteRoutes.ts similarity index 92% rename from packages/server/src/routes/SiteRoutes.ts rename to packages/server/src/site/SiteRoutes.ts index a4d324d..64ecc89 100644 --- a/packages/server/src/routes/SiteRoutes.ts +++ b/packages/server/src/site/SiteRoutes.ts @@ -1,7 +1,7 @@ import {AsyncRouter} from '../router' -import {BaseRoute} from './BaseRoute' +import {BaseRoute} from '../routes/BaseRoute' import {IAPIDef} from '@rondo/common' -import {ISiteService} from '../services/ISiteService' +import {ISiteService} from './ISiteService' import {ensureLoggedInApi} from '../middleware' export class SiteRoutes extends BaseRoute { diff --git a/packages/server/src/services/SiteService.ts b/packages/server/src/site/SiteService.ts similarity index 94% rename from packages/server/src/services/SiteService.ts rename to packages/server/src/site/SiteService.ts index c2d0186..b41b60d 100644 --- a/packages/server/src/services/SiteService.ts +++ b/packages/server/src/site/SiteService.ts @@ -1,4 +1,4 @@ -import {BaseService} from './BaseService' +import {BaseService} from '../services/BaseService' import {ISiteService} from './ISiteService' import {Site} from '../entities/Site' diff --git a/packages/server/src/site/index.ts b/packages/server/src/site/index.ts new file mode 100644 index 0000000..bc5de51 --- /dev/null +++ b/packages/server/src/site/index.ts @@ -0,0 +1,3 @@ +export * from './ISiteService' +export * from './SiteRoutes' +export * from './SiteService' diff --git a/packages/server/src/services/IStoryService.ts b/packages/server/src/story/IStoryService.ts similarity index 100% rename from packages/server/src/services/IStoryService.ts rename to packages/server/src/story/IStoryService.ts diff --git a/packages/server/src/routes/StoryRoutes.ts b/packages/server/src/story/StoryRoutes.ts similarity index 82% rename from packages/server/src/routes/StoryRoutes.ts rename to packages/server/src/story/StoryRoutes.ts index 1db75e9..6e58c42 100644 --- a/packages/server/src/routes/StoryRoutes.ts +++ b/packages/server/src/story/StoryRoutes.ts @@ -1,7 +1,7 @@ import {AsyncRouter} from '../router' -import {BaseRoute} from './BaseRoute' +import {BaseRoute} from '../routes/BaseRoute' import {IAPIDef} from '@rondo/common' -import {IStoryService} from '../services/IStoryService' +import {IStoryService} from './IStoryService' export class StoryRoutes extends BaseRoute { constructor( diff --git a/packages/server/src/services/StoryService.ts b/packages/server/src/story/StoryService.ts similarity index 91% rename from packages/server/src/services/StoryService.ts rename to packages/server/src/story/StoryService.ts index 18409b6..5185f34 100644 --- a/packages/server/src/services/StoryService.ts +++ b/packages/server/src/story/StoryService.ts @@ -1,6 +1,6 @@ import URL from 'url' -import {BaseService} from './BaseService' -import {ISiteService} from './ISiteService' +import {BaseService} from '../services/BaseService' +import {ISiteService} from '../site/ISiteService' import {IStoryService} from './IStoryService' import {ITransactionManager} from '../database/ITransactionManager' import {Story} from '../entities/Story' diff --git a/packages/server/src/story/index.ts b/packages/server/src/story/index.ts new file mode 100644 index 0000000..0760363 --- /dev/null +++ b/packages/server/src/story/index.ts @@ -0,0 +1,3 @@ +export * from './StoryRoutes' +export * from './IStoryService' +export * from './StoryService' diff --git a/packages/server/src/services/ITeamService.ts b/packages/server/src/team/ITeamService.ts similarity index 100% rename from packages/server/src/services/ITeamService.ts rename to packages/server/src/team/ITeamService.ts diff --git a/packages/server/src/routes/TeamRoutes.test.ts b/packages/server/src/team/TeamRoutes.test.ts similarity index 100% rename from packages/server/src/routes/TeamRoutes.test.ts rename to packages/server/src/team/TeamRoutes.test.ts diff --git a/packages/server/src/routes/TeamRoutes.ts b/packages/server/src/team/TeamRoutes.ts similarity index 89% rename from packages/server/src/routes/TeamRoutes.ts rename to packages/server/src/team/TeamRoutes.ts index a82a35c..464a667 100644 --- a/packages/server/src/routes/TeamRoutes.ts +++ b/packages/server/src/team/TeamRoutes.ts @@ -1,7 +1,7 @@ import {AsyncRouter} from '../router' -import {BaseRoute} from './BaseRoute' +import {BaseRoute} from '../routes/BaseRoute' import {IAPIDef} from '@rondo/common' -import {ITeamService} from '../services/ITeamService' +import {ITeamService} from './ITeamService' import {ensureLoggedInApi} from '../middleware' export class TeamRoutes extends BaseRoute { diff --git a/packages/server/src/services/TeamService.ts b/packages/server/src/team/TeamService.ts similarity index 91% rename from packages/server/src/services/TeamService.ts rename to packages/server/src/team/TeamService.ts index fb33243..3a55cbe 100644 --- a/packages/server/src/services/TeamService.ts +++ b/packages/server/src/team/TeamService.ts @@ -1,4 +1,4 @@ -import {BaseService} from './BaseService' +import {BaseService} from '../services/BaseService' import {ITeamService} from './ITeamService' import {Team} from '../entities/Team' diff --git a/packages/server/src/team/index.ts b/packages/server/src/team/index.ts new file mode 100644 index 0000000..2e2b94e --- /dev/null +++ b/packages/server/src/team/index.ts @@ -0,0 +1,3 @@ +export * from './ITeamService' +export * from './TeamRoutes' +export * from './TeamService'