File tree Expand file tree Collapse file tree 5 files changed +30
-26
lines changed
Expand file tree Collapse file tree 5 files changed +30
-26
lines changed Original file line number Diff line number Diff line change 1+ import AbstractFileRepository from './repositories/AbstractFileRepository' ;
2+ import IService from './IService' ;
3+
4+ export default abstract class AbstractServiceWithProfile < T >
5+ implements IService < T > {
6+ protected repository : AbstractFileRepository | undefined ;
7+
8+ setProfile ( profile : string ) {
9+ this . repository ?. setProfile ( profile ) ;
10+ }
11+
12+ abstract getAll ( ) : T ;
13+
14+ abstract save ( data : T ) : void ;
15+ }
Original file line number Diff line number Diff line change @@ -11,8 +11,6 @@ export default abstract class AbstractFileRepository<T = any> {
1111 fileName : string = 'defaultFileName.json' ;
1212 saveInRoot : boolean = false ;
1313
14- private logPrefix = `Repository[${ this . fileName } ]:` ;
15-
1614 writeFileQueue = new PromiseQueue ( ) ;
1715
1816 private static get appDataFolder ( ) {
@@ -31,13 +29,8 @@ export default abstract class AbstractFileRepository<T = any> {
3129 return path . join ( this . destFolder , this . fileName ) ;
3230 }
3331
34- public setProfile ( profile : string | null ) {
35- if ( profile ) {
36- this . dirWithProfileData = profile ;
37- console . log ( `${ this . logPrefix } set profile=${ profile } ` ) ;
38- } else {
39- console . error ( `${ this . logPrefix } set profile=null` ) ;
40- }
32+ public setProfile ( profile : string ) {
33+ this . dirWithProfileData = profile ;
4134 }
4235
4336 public restore ( defaultValue : T ) : T {
Original file line number Diff line number Diff line change 1- import IService from '../../base/IService' ;
21import ProjectModel , { DEFAULT_PROJECTS } from './models/ProjectModel' ;
32import ProjectFactory from './ProjectFactory' ;
43import ProjectRepository from './ProjectRepository' ;
4+ import AbstractServiceWithProfile from '../../base/AbstractServiceWithProfile' ;
55
6- export default class ProjectService implements IService < ProjectModel [ ] > {
7- factory = new ProjectFactory ( ) ;
8- repository = new ProjectRepository ( ) ;
9-
10- setProfile ( profile : string ) {
11- this . repository . setProfile ( profile ) ;
12- }
6+ export default class ProjectService extends AbstractServiceWithProfile <
7+ ProjectModel [ ]
8+ > {
9+ private factory = new ProjectFactory ( ) ;
10+ protected repository = new ProjectRepository ( ) ;
1311
1412 getAll ( ) : ProjectModel [ ] {
1513 const data = this . repository . restore ( DEFAULT_PROJECTS ) ;
Original file line number Diff line number Diff line change 11import TaskRepository from './TaskRepository' ;
22import TaskFactory from './TaskFactory' ;
3- import IService from '../../base/IService' ;
43import TasksByProject from './models/TasksByProject' ;
4+ import AbstractServiceWithProfile from '../../base/AbstractServiceWithProfile' ;
55
6- export default class TaskService implements IService < TasksByProject > {
7- repository : TaskRepository = new TaskRepository ( ) ;
8- factory : TaskFactory = new TaskFactory ( ) ;
9-
10- setProfile ( profile : string ) {
11- this . repository . setProfile ( profile ) ;
12- }
6+ export default class TaskService extends AbstractServiceWithProfile <
7+ TasksByProject
8+ > {
9+ private factory : TaskFactory = new TaskFactory ( ) ;
10+ protected repository : TaskRepository = new TaskRepository ( ) ;
1311
1412 getAll ( ) : TasksByProject {
1513 const data : TasksByProject = this . repository . restore ( { } ) ;
Original file line number Diff line number Diff line change 1- import { autorun , makeAutoObservable , reaction } from 'mobx' ;
1+ import { autorun , makeAutoObservable } from 'mobx' ;
22
33import TaskService from './TaskService' ;
44import TaskModel , { ITimeRangeModel } from './models/TaskModel' ;
You can’t perform that action at this time.
0 commit comments