From 24f0d8709fc5e90a92d9c3940e693f76cd653bf4 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Tue, 9 Jun 2020 13:49:51 +0300 Subject: refactor: move services to separate folder --- services/PollService.ts | 38 ++++++++++++++++++++++++++++++++++++++ services/UserService.ts | 20 ++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 services/PollService.ts create mode 100644 services/UserService.ts (limited to 'services') diff --git a/services/PollService.ts b/services/PollService.ts new file mode 100644 index 0000000..2944af3 --- /dev/null +++ b/services/PollService.ts @@ -0,0 +1,38 @@ +interface ImageData { + url: string; + votes: number; +} + +interface User { + name: string; + avatarUrl: string; +} + +export interface Poll { + author: User; + contents: { + left: ImageData; + right: ImageData; + }; +} + +const defaultUser: User = { + name: 'John Doe', + avatarUrl: 'https://github.com/eug-vs.png' +}; + + +export class PollService { + polls: Poll[] = []; + + async find () { + return this.polls; + } + + async create (data: Pick) { + const poll: Poll = { ...data, author: defaultUser }; + this.polls.push(poll); + return poll; + } +} + diff --git a/services/UserService.ts b/services/UserService.ts new file mode 100644 index 0000000..57a883c --- /dev/null +++ b/services/UserService.ts @@ -0,0 +1,20 @@ +interface User { + name: string; + avatarUrl?: string; + age?: number; +} + +export class UserService { + users: User[] = []; + + async find (){ + return this.users; + } + + async create(data: Pick){ + const user: User = { ...data }; + this.users.push(user); + return user; + } +} + -- cgit v1.2.3 From e9d0438f6c02664c652a593c686564361fa0de6b Mon Sep 17 00:00:00 2001 From: eug-vs Date: Tue, 9 Jun 2020 14:16:15 +0300 Subject: refactor: structurize feathers app --- services/PollService.ts | 38 -------------------------------------- services/UserService.ts | 20 -------------------- services/index.ts | 8 ++++++++ services/polls/polls.class.ts | 38 ++++++++++++++++++++++++++++++++++++++ services/polls/polls.service.ts | 7 +++++++ services/users/users.class.ts | 20 ++++++++++++++++++++ services/users/users.service.ts | 7 +++++++ 7 files changed, 80 insertions(+), 58 deletions(-) delete mode 100644 services/PollService.ts delete mode 100644 services/UserService.ts create mode 100644 services/index.ts create mode 100644 services/polls/polls.class.ts create mode 100644 services/polls/polls.service.ts create mode 100644 services/users/users.class.ts create mode 100644 services/users/users.service.ts (limited to 'services') diff --git a/services/PollService.ts b/services/PollService.ts deleted file mode 100644 index 2944af3..0000000 --- a/services/PollService.ts +++ /dev/null @@ -1,38 +0,0 @@ -interface ImageData { - url: string; - votes: number; -} - -interface User { - name: string; - avatarUrl: string; -} - -export interface Poll { - author: User; - contents: { - left: ImageData; - right: ImageData; - }; -} - -const defaultUser: User = { - name: 'John Doe', - avatarUrl: 'https://github.com/eug-vs.png' -}; - - -export class PollService { - polls: Poll[] = []; - - async find () { - return this.polls; - } - - async create (data: Pick) { - const poll: Poll = { ...data, author: defaultUser }; - this.polls.push(poll); - return poll; - } -} - diff --git a/services/UserService.ts b/services/UserService.ts deleted file mode 100644 index 57a883c..0000000 --- a/services/UserService.ts +++ /dev/null @@ -1,20 +0,0 @@ -interface User { - name: string; - avatarUrl?: string; - age?: number; -} - -export class UserService { - users: User[] = []; - - async find (){ - return this.users; - } - - async create(data: Pick){ - const user: User = { ...data }; - this.users.push(user); - return user; - } -} - diff --git a/services/index.ts b/services/index.ts new file mode 100644 index 0000000..eeaf485 --- /dev/null +++ b/services/index.ts @@ -0,0 +1,8 @@ +import Users from './users/users.service'; +import Polls from './polls/polls.service'; + +export default (app: Application): void => { + app.configure(Users); + app.configure(Polls); +}; + diff --git a/services/polls/polls.class.ts b/services/polls/polls.class.ts new file mode 100644 index 0000000..82ef155 --- /dev/null +++ b/services/polls/polls.class.ts @@ -0,0 +1,38 @@ +interface ImageData { + url: string; + votes: number; +} + +interface User { + name: string; + avatarUrl: string; +} + +interface Poll { + author: User; + contents: { + left: ImageData; + right: ImageData; + }; +} + +const defaultUser: User = { + name: 'John Doe', + avatarUrl: 'https://github.com/eug-vs.png' +}; + + +export default class Polls { + polls: Poll[] = []; + + async find () { + return this.polls; + } + + async create (data: Pick) { + const poll: Poll = { ...data, author: defaultUser }; + this.polls.push(poll); + return poll; + } +} + diff --git a/services/polls/polls.service.ts b/services/polls/polls.service.ts new file mode 100644 index 0000000..a4bd816 --- /dev/null +++ b/services/polls/polls.service.ts @@ -0,0 +1,7 @@ +import { Application } from '@feathersjs/express'; +import Polls from './polls.class'; + +export default (app: Application): void => { + app.use('/polls', new Polls()); +}; + diff --git a/services/users/users.class.ts b/services/users/users.class.ts new file mode 100644 index 0000000..db6b5a9 --- /dev/null +++ b/services/users/users.class.ts @@ -0,0 +1,20 @@ +interface User { + name: string; + avatarUrl?: string; + age?: number; +} + +export default class Users { + users: User[] = []; + + async find (){ + return this.users; + } + + async create(data: Pick){ + const user: User = { ...data }; + this.users.push(user); + return user; + } +} + diff --git a/services/users/users.service.ts b/services/users/users.service.ts new file mode 100644 index 0000000..bf608fe --- /dev/null +++ b/services/users/users.service.ts @@ -0,0 +1,7 @@ +import { Application } from '@feathersjs/express'; +import Users from './users.class'; + +export default (app: Application): void => { + app.use('/users', new Users()); +}; + -- cgit v1.2.3