This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
resolver/src/core/factories/serviceProvide.ts
2018-01-12 13:40:59 +07:00

131 lines
2.5 KiB
TypeScript

//#region Interfaces
import { IServiceProvider } from 'core/factories'
import { injectable } from 'inversify'
import {
IAuthorizeService,
ICircleService,
ICommentService,
ICommonService,
IImageGalleryService,
INotificationService,
IPostService,
IUserService,
IVoteService,
IStorageService
} from 'core/services'
//#endregion
//#region Service implemented classes
// - Firebase services
import {
AuthorizeService,
CircleService,
CommentService,
CommonService,
ImageGalleryService,
NotificationService,
PostService,
UserService,
VoteService,
StorageService
} from 'data/firestoreClient/services'
//#endregion
@injectable()
export class ServiceProvide implements IServiceProvider {
/**
* Create instant for Authorize Service
*
* @memberof ServiceProvide
*/
createAuthorizeService: () => IAuthorizeService = () => {
return new AuthorizeService()
}
/**
* Create instant for Circle Service
*
* @memberof ServiceProvide
*/
createCircleService: () => ICircleService = () => {
return new CircleService()
}
/**
* Create instant for Comment Service
*
* @memberof ServiceProvide
*/
createCommentService: () => ICommentService = () => {
return new CommentService()
}
/**
* Create instant for Common Service
*
* @memberof ServiceProvide
*/
createCommonService: () => ICommonService = () => {
return new CommonService()
}
/**
* Create instant for ImageGallery Service
*
* @memberof ServiceProvide
*/
createImageGalleryService: () => IImageGalleryService = () => {
return new ImageGalleryService()
}
/**
* Create instant for Notification Service
*
* @memberof ServiceProvide
*/
createNotificationService: () => INotificationService = () => {
return new NotificationService()
}
/**
* Create instant for Post Service
*
* @memberof ServiceProvide
*/
createPostService: () => IPostService = () => {
return new PostService()
}
/**
* Create instant for User Service
*
* @memberof ServiceProvide
*/
createUserService: () => IUserService = () => {
return new UserService()
}
/**
* Create instant for Vote Service
*
* @memberof ServiceProvide
*/
createVoteService: () => IVoteService = () => {
return new VoteService()
}
/**
* Create instant for Vote Service
*
* @memberof ServiceProvide
*/
createStorageService: () => IStorageService = () => {
return new StorageService()
}
}