aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2020-06-09 14:16:15 +0300
committereug-vs <eug-vs@keemail.me>2020-06-09 14:16:15 +0300
commite9d0438f6c02664c652a593c686564361fa0de6b (patch)
tree5bc0a1e78cf72c6e1ae48f5ee3954511748c81b1
parent24f0d8709fc5e90a92d9c3940e693f76cd653bf4 (diff)
downloadwhich-api-e9d0438f6c02664c652a593c686564361fa0de6b.tar.gz
refactor: structurize feathers app
-rw-r--r--app.ts26
-rw-r--r--index.ts14
-rw-r--r--services/index.ts8
-rw-r--r--services/polls/polls.class.ts (renamed from services/PollService.ts)4
-rw-r--r--services/polls/polls.service.ts7
-rw-r--r--services/users/users.class.ts (renamed from services/UserService.ts)2
-rw-r--r--services/users/users.service.ts7
7 files changed, 46 insertions, 22 deletions
diff --git a/app.ts b/app.ts
index 5b0d9d6..264b517 100644
--- a/app.ts
+++ b/app.ts
@@ -1,10 +1,10 @@
import feathers from '@feathersjs/feathers';
-import '@feathersjs/transport-commons';
import express from '@feathersjs/express';
import socketio from '@feathersjs/socketio';
+import '@feathersjs/transport-commons';
+
+import services from './services';
-import { PollService } from './PollService';
-import {UserService} from "./UserService";
const app = express(feathers());
@@ -14,24 +14,10 @@ app.use(express.static(__dirname));
app.configure(express.rest());
app.configure(socketio());
app.use(express.errorHandler());
+app.configure(services);
-app.use('/polls', new PollService());
-app.use('/users', new UserService());
-
-// Add any new real-time connection to the `everybody` channel
-app.on('connection', connection =>
- app.channel('everybody').join(connection)
-);
-// Publish all events to the `everybody` channel
-app.publish(data => app.channel('everybody'));
-
-app.listen(3030).on('listening', () =>
- console.log('Feathers server listening on localhost:3030')
-);
-
-// For good measure let's create a message
-// So our API doesn't look so empty
+// Mock data
app.service('polls').create({
contents: {
left: {
@@ -51,3 +37,5 @@ app.service('users').create({
avatarUrl: 'https://github.com/ilyayudovin.png'
});
+export default app;
+
diff --git a/index.ts b/index.ts
new file mode 100644
index 0000000..35d1411
--- /dev/null
+++ b/index.ts
@@ -0,0 +1,14 @@
+import app from './app';
+
+// Add any new real-time connection to the `everybody` channel
+app.on('connection', connection =>
+ app.channel('everybody').join(connection)
+);
+// Publish all events to the `everybody` channel
+app.publish(data => app.channel('everybody'));
+
+
+app.listen(3030).on('listening', () =>
+ console.log('Feathers server listening on localhost:3030')
+);
+
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/PollService.ts b/services/polls/polls.class.ts
index 2944af3..82ef155 100644
--- a/services/PollService.ts
+++ b/services/polls/polls.class.ts
@@ -8,7 +8,7 @@ interface User {
avatarUrl: string;
}
-export interface Poll {
+interface Poll {
author: User;
contents: {
left: ImageData;
@@ -22,7 +22,7 @@ const defaultUser: User = {
};
-export class PollService {
+export default class Polls {
polls: Poll[] = [];
async find () {
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/UserService.ts b/services/users/users.class.ts
index 57a883c..db6b5a9 100644
--- a/services/UserService.ts
+++ b/services/users/users.class.ts
@@ -4,7 +4,7 @@ interface User {
age?: number;
}
-export class UserService {
+export default class Users {
users: User[] = [];
async find (){
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());
+};
+