Skip to content

Commit 8a2653c

Browse files
author
Ezumezu Chukwuma
committed
issue #62 | update api and api-tests
1 parent c0746c3 commit 8a2653c

20 files changed

+605
-44
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"lint": "gulp lint",
88
"test": "babel-node ./node_modules/.bin/_mocha",
9-
"cover": "rm -rf coverage/ && babel-node ./node_modules/babel-istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec",
9+
"cover": "rm -rf coverage/ && babel-node ./node_modules/babel-istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha",
1010
"coveralls": "cat ./coverage/lcov.info | coveralls",
1111
"commitmsg": "babel-node commitValidator.js commit && npm run lint",
1212
"start": "babel-node server.js"
@@ -33,6 +33,7 @@
3333
"gulp": "^3.9.1",
3434
"gulp-babel": "^6.1.2",
3535
"gulp-eslint": "^3.0.1",
36+
"mongoose": "^4.7.6",
3637
"tracer": "^0.8.7"
3738
},
3839
"devDependencies": {

server.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ import express from 'express';
22
import bodyParser from 'body-parser';
33
import 'dotenv/config';
44
import Logger from './Logger.js';
5+
import './server/models/db.js';
56

67
/**
78
* Import app routes
89
*/
910
import homepage from './server/routes/index.js';
1011
import authRoute from './server/routes/auth.js';
1112
import usersRoute from './server/routes/users.js';
12-
import docsRoute from './server/routes/documents.js';
13+
import docTemplateRoute from './server/routes/templates';
1314
import docCategoryRoute from './server/routes/categories.js';
1415

1516
const app = express();
@@ -23,7 +24,7 @@ app.use(bodyParser.urlencoded({ extended: true }));
2324
app.use('/', homepage);
2425
app.use('/api/v1/auth', authRoute);
2526
app.use('/api/v1/users', usersRoute);
26-
app.use('/api/v1/templates', docsRoute);
27+
app.use('/api/v1/templates', docTemplateRoute);
2728
app.use('/api/v1/categories', docCategoryRoute);
2829

2930
/**

server/controllers/auth-controller.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import User from '../models/user-model.js';
2+
3+
/**
4+
* AuthController
5+
*
6+
* Handles requests made to /api/v1/auth
7+
*/
8+
class AuthController {
9+
10+
/**
11+
* signup
12+
*
13+
* Registers a new user
14+
*
15+
* @param {Object} req
16+
* @param {Object} res
17+
* @param {Object} next
18+
* @returns {Object} User
19+
*/
20+
signup(req, res, next) {
21+
res.send({ content: 'signup' });
22+
}
23+
24+
/**
25+
* signin
26+
*
27+
* Logs in a registered user
28+
*
29+
* @param {Object} req
30+
* @param {Object} res
31+
* @param {Object} next
32+
* @returns {Object} User
33+
*/
34+
signin(req, res, next) {
35+
res.send({ content: 'signin' });
36+
}
37+
38+
/**
39+
* signout
40+
*
41+
* Logs out a logged in user
42+
*
43+
* @param {Object} req
44+
* @param {Object} res
45+
* @param {Object} next
46+
* @returns {String} Success or Failure
47+
*/
48+
signout(req, res, next) {
49+
res.send({ content: 'signout' });
50+
}
51+
}
52+
53+
export default new AuthController();
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import DocumentCategory from '../models/category-model.js';
2+
3+
/**
4+
* DocumentCategoryControl
5+
*
6+
* handles requests made to /api/v1/categories
7+
*/
8+
class DocumentCategoryControl {
9+
10+
/**
11+
* getCategories
12+
*
13+
* Gets all category names
14+
* @param {Object} req
15+
* @param {Object} res
16+
* @param {Object} next
17+
* @returns {Object[]} Categories
18+
*/
19+
getCategories(req, res, next) {
20+
res.send({ content: 'get all doc categories' });
21+
}
22+
23+
/**
24+
* getCategory
25+
*
26+
* Gets a category name
27+
* @param {Object} req
28+
* @param {Object} res
29+
* @param {Object} next
30+
* @returns {Object} Category
31+
*/
32+
getCategory(req, res, next) {
33+
res.send({ content: 'get the name of the category' });
34+
}
35+
36+
/**
37+
* getCategoryDocuments
38+
*
39+
* Gets a category name
40+
* @param {Object} req
41+
* @param {Object} res
42+
* @param {Object} next
43+
* @returns {Object} Category
44+
*/
45+
getCategoryDocuments(req, res, next) {
46+
res.send({ content: 'get docs from a specified category' });
47+
}
48+
49+
/**
50+
* addCategory
51+
*
52+
* Adds a new category names
53+
* @param {Object} req
54+
* @param {Object} res
55+
* @param {Object} next
56+
* @returns {Object} Categories
57+
*/
58+
addCategory(req, res, next) {
59+
res.send({ content: 'add a new category' });
60+
}
61+
62+
/**
63+
* editCategory
64+
*
65+
* Edits a category data
66+
* @param {Object} req
67+
* @param {Object} res
68+
* @param {Object} next
69+
* @returns {Object} Category
70+
*/
71+
editCategory(req, res, next) {
72+
res.send({ content: 'edit a category' });
73+
}
74+
75+
/**
76+
* deleteCategory
77+
*
78+
* Delete a category data
79+
* @param {Object} req
80+
* @param {Object} res
81+
* @param {Object} next
82+
* @returns {Object} Category
83+
*/
84+
deleteCategory(req, res, next) {
85+
res.send({ content: 'delete a category' });
86+
}
87+
}
88+
89+
export default new DocumentCategoryControl();
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import DocumentTemplate from '../models/templates-model.js';
2+
3+
/**
4+
* DocumentTemplateControl
5+
*
6+
* Handles requests made to /api/v1/templates
7+
*/
8+
class DocumentTemplateControl {
9+
10+
/**
11+
* getTemplates
12+
*
13+
* @param {Object} req
14+
* @param {Object} res
15+
* @param {Object} next
16+
* @returns {Object[]} Templates
17+
*/
18+
getTemplates(req, res, next) {
19+
res.send({ content: 'get all templates' });
20+
}
21+
22+
/**
23+
* getTemplate
24+
*
25+
* @param {Object} req
26+
* @param {Object} res
27+
* @param {Object} next
28+
* @returns {Object} Template
29+
*/
30+
getTemplate(req, res, next) {
31+
res.send({ content: 'get a particulatr template' });
32+
}
33+
34+
/**
35+
* addTemplates
36+
*
37+
* @param {Object} req
38+
* @param {Object} res
39+
* @param {Object} next
40+
* @returns {Object} Template
41+
*/
42+
addTemplates(req, res, next) {
43+
res.send({ content: 'add a template' });
44+
}
45+
46+
/**
47+
* editTemplates
48+
*
49+
* @param {Object} req
50+
* @param {Object} res
51+
* @param {Object} next
52+
* @returns {Object} Template
53+
*/
54+
editTemplates(req, res, next) {
55+
res.send({ content: 'edit a template' });
56+
}
57+
58+
/**
59+
* deleteTemplates
60+
*
61+
* @param {Object} req
62+
* @param {Object} res
63+
* @param {Object} next
64+
* @returns {Object} Template
65+
*/
66+
deleteTemplates(req, res, next) {
67+
res.send({ content: 'delete a template' });
68+
}
69+
}
70+
71+
export default new DocumentTemplateControl();

server/controllers/user-controller.js

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
import User from '../models/user-model.js';
2+
3+
/**
4+
* UserController class.
5+
* Handles requests made to the /api/v1/users endpoint
6+
*/
7+
class UserController {
8+
9+
/**
10+
* getAllUsers
11+
*
12+
* Gets all registered users.
13+
*
14+
* @param {Object} req
15+
* @param {Object} res
16+
* @param {Object} next
17+
* @returns {Object[]} Users
18+
*/
19+
getAllUsers(req, res, next) {
20+
res.send({ content: 'get all users' });
21+
}
22+
23+
/**
24+
* getOneUser
25+
*
26+
* Gets a specified user.
27+
*
28+
* @param {Object} req
29+
* @param {Object} res
30+
* @param {Object} next
31+
* @returns {Object} User
32+
*/
33+
getOneUser(req, res, next) {
34+
res.send({ content: 'get single user' });
35+
}
36+
37+
/**
38+
* editUser
39+
*
40+
* Edits a users data.
41+
*
42+
* @param {Object} req
43+
* @param {Object} res
44+
* @param {Object} next
45+
* @returns {Object} Users
46+
*/
47+
editUser(req, res, next) {
48+
res.send({ content: 'edit single user' });
49+
}
50+
51+
/**
52+
* deleteUser
53+
*
54+
* Deletes a users data.
55+
*
56+
* @param {Object} req
57+
* @param {Object} res
58+
* @param {Object} next
59+
* @returns {Object} Users
60+
*/
61+
deleteUser(req, res, next) {
62+
res.send({ content: 'deletes a user' });
63+
}
64+
65+
/**
66+
* getUserDocuments
67+
*
68+
* Get all documents belonging to a user.
69+
*
70+
* @param {Object} req
71+
* @param {Object} res
72+
* @param {Object} next
73+
* @returns {Object[]} Document
74+
*/
75+
getUserDocuments(req, res, next) {
76+
res.send({ content: 'get a user\'s documents' });
77+
}
78+
79+
/**
80+
* getUserDocument
81+
*
82+
* Get a specified document belonging to a user.
83+
*
84+
* @param {Object} req
85+
* @param {Object} res
86+
* @param {Object} next
87+
* @returns {Object} Document
88+
*/
89+
getUserDocument(req, res, next) {
90+
res.send({ content: 'get a specified document from a specified user' });
91+
}
92+
93+
/**
94+
* createDocument
95+
*
96+
* Save a customized document.
97+
*
98+
* @param {Object} req
99+
* @param {Object} res
100+
* @param {Object} next
101+
* @returns {Object} Document
102+
*/
103+
createDocument(req, res, next) {
104+
res.send({ content: 'add a document' });
105+
}
106+
107+
/**
108+
* editUserDocument
109+
*
110+
* Edits a users document.
111+
*
112+
* @param {Object} req
113+
* @param {Object} res
114+
* @param {Object} next
115+
* @returns {Object} Document
116+
*/
117+
editUserDocument(req, res, next) {
118+
res.send({ content: 'edit a specified document' });
119+
}
120+
121+
/**
122+
* deleteUserDocument
123+
*
124+
* Deletes a users document.
125+
*
126+
* @param {Object} req
127+
* @param {Object} res
128+
* @param {Object} next
129+
* @returns {Object} Users
130+
*/
131+
deleteUserDocument(req, res, next) {
132+
res.send({ content: 'delete a specified document' });
133+
}
134+
}
135+
136+
export default new UserController();

0 commit comments

Comments
 (0)