Skip to content

Commit

Permalink
docummentation
Browse files Browse the repository at this point in the history
  • Loading branch information
salviosage committed Aug 20, 2019
1 parent 3109cea commit 22fb8d7
Show file tree
Hide file tree
Showing 10 changed files with 584 additions and 42 deletions.
2 changes: 1 addition & 1 deletion src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { mock } from './middlewares/validators/socialLogin-mock';

const app = express();

if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development') {
app.use(mock);
}
logging();
Expand Down
87 changes: 62 additions & 25 deletions src/controllers/likes.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,21 @@ class LikesController {
if (req.body.likeId) {
const prof = {
status: 'neutral',
claps: null,
claps: 0,
};
const like = await likeService.updateLikes(prof, req.params.Article);
util.setSuccess(200, 'Successfully unliked', like);
const like = await likeService.updateLikes(prof, req.body.likeId);
const newLike = {
status: like[1].status,
claps: like[1].claps,
ArticleSlug: like[1].ArticleSlug,
};
util.setSuccess(200, 'Successfully unliked', newLike);
return util.send(res);
}
util.setError(404, 'you cant unlike article you didnt like');
util.setError(401, 'you cant unlike article you did not like');
return util.send(res);
} catch (error) {
util.setError(500, 'contact admin');
util.setError(500, 'server error contact admin');
return util.send(res);
}
}
Expand All @@ -42,26 +47,43 @@ class LikesController {
*/
static async dislike(req, res) {
try {
if (req.body.author === req.body.userId) {
util.setError(401, 'You can not dislike to your own post');
return util.send(res);
}
if (!req.body.likeId) {
const prof = {
userId: req.body.userId,
ArticleSlug: req.params.Article,
status: 'dislike',
claps: null,
claps: 0,
};
const like = await likeService.createLikes(prof);
util.setSuccess(200, 'Successfully disliked', like);
const newLike = {
status: like.status,
claps: like.claps,
ArticleSlug: like.ArticleSlug,
};
util.setSuccess(200, 'Successfully disliked', newLike);
return util.send(res);
}
const prof = {
status: 'dislike',
claps: null,
claps: 0,
};
if (req.body.status === 'dislike') {
prof.status = 'neutral';
}
const like = await likeService.updateLikes(prof, req.body.likeId);
util.setSuccess(200, 'Successfully disliked', like);
const newLike = {
status: like[1].status,
claps: like[1].claps,
ArticleSlug: like[1].ArticleSlug,
};
util.setSuccess(200, 'Successfully disliked', newLike);
return util.send(res);
} catch (error) {
util.setError(500, 'dislike not successfully server error');
util.setError(500, 'server error contact admin');
return util.send(res);
}
}
Expand All @@ -74,13 +96,22 @@ class LikesController {
*/
static async clap(req, res) {
try {
if (req.body.author === req.body.userId) {
util.setError(401, 'You can not clap to your own post');
return util.send(res);
}
if (req.body.likeId) {
const prof = {
status: 'like',
claps: req.body.claps + 1,
};
const like = await likeService.updateLikes(prof, req.body.likeId);
util.setSuccess(200, 'Successfully claped', like);
const newLike = {
status: like[1].status,
claps: like[1].claps,
ArticleSlug: like[1].ArticleSlug,
};
util.setSuccess(200, 'Successfully claped', newLike);
return util.send(res);
}
const prof = {
Expand All @@ -90,11 +121,15 @@ class LikesController {
claps: 1,
};
const like = await likeService.createLikes(prof);
util.setSuccess(200, 'Successfully claped', like);
const newLike = {
status: like.status,
claps: like.claps,
ArticleSlug: like.ArticleSlug,
};
util.setSuccess(200, 'Successfully claped', newLike);
return util.send(res);
} catch (error) {
console.log(error);
util.setError(500, 'clap not successfully server error');
util.setError(500, 'server error contact admin');
return util.send(res);
}
}
Expand All @@ -107,15 +142,16 @@ class LikesController {
*/
static async getDislikes(req, res) {
try {
const dislike = await likeService.getAllADislike(req.params.parentid);
const dislike = await likeService.getAllADislike(req.params.Article);
if (dislike) {
util.setSuccess(200, 'Successfully claped', dislike);
const data = {
dislikes: dislike.count,
};
util.setSuccess(200, 'Dislike retrieved successfully', data);
return util.send(res);
}
util.setError(404, 'no dislike found');
return util.send(res);
} catch (error) {
util.setError(400, 'unsuccessfull request server error');
util.setError(400, 'server error contact admin');
return util.send(res);
}
}
Expand All @@ -128,16 +164,17 @@ class LikesController {
*/
static async getClaps(req, res) {
try {
const claps = await likeService.getAllAClaps(req.params.parentid);
const claps = await likeService.getAllAClaps(req.params.Article);
if (claps) {
util.setSuccess(200, 'Successfully claps retrieved', claps);
const data = {
clapers: claps.count,
claps: Object.values(claps)[1],
};
util.setSuccess(200, 'Claps retrieved successfully', data);
return util.send(res);
}
util.setError(404, 'no claps found');
return util.send(res);
} catch (error) {
console.log(error);
util.setError(400, 'unsuccessfull request');
util.setError(400, 'server error contact admin');
return util.send(res);
}
}
Expand Down
2 changes: 0 additions & 2 deletions src/middlewares/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ const validateToken = async (req, res, next) => {
req.token = token;
req.auth = decode;
next();

return decode;
});
} else {
return res.status(400).send({
Expand Down
17 changes: 11 additions & 6 deletions src/middlewares/likes.middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,27 @@ export default async (req, res, next) => {
const userId = user.id;
const ArticleSlug = req.params.Article;
const post = await models.Article.findOne({ where: { slug: ArticleSlug } });

if (!post) {
util.setError(404, 'post not found');
return util.send(res);
}
const like = await models.Likes.findOne({ where: { ArticleSlug, userId } });
console.log(req.params.Article);
if (like) {
if (!like) {
req.body.author = post.authorId;
req.body.userId = userId;
req.body.likeId = null;
req.body.claps = null;
req.body.author = post.authorId;
next();
} else {
req.body.author = post.authorId;
req.body.likeId = like.id;
req.body.claps = like.claps;
req.body.userId = userId;
req.body.status = like.status;
next();
}
req.body.likeId = null;
req.body.claps = null;
req.body.userId = userId;
next();
} catch (error) {
util.setError(500, 'server error');
return util.send(res);
Expand Down
173 changes: 173 additions & 0 deletions src/routes/api/likes/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
/likes/clap/{articleslug}:
put:
summary: clap for an article
description: >
slap for an article which is not yours
tags:
- Like
produces:
- application/json
parameters:
- name: x-access-token
in: header
schema:
type: string
required:
- authorization
responses:
200:
description: OK
schema:
$ref: '#definitions/success'
404:
$ref: '#responses/Notfound'
401:
$ref: '#responses/BadRequest'
400:
$ref: '#responses/BadRequest'
/likes/claps/{articleslug}:
get:
summary: get all claps
description: >
get all claps for an article
tags:
- Like
produces:
- application/json
parameters:
- name: x-access-token
in: header
schema:
type: string
required:
- authorization
responses:
200:
description: Claps retrieved successfully
schema:
$ref: '#definitions/success'
404:
$ref: '#responses/Notfound'
401:
$ref: '#responses/BadRequest'
400:
$ref: '#responses/BadRequest'
/likes/dislikes/{articleslug}:
get:
summary: get all cdislikes
description: >
get all dislike for an article
tags:
- Like
produces:
- application/json
parameters:
- name: x-access-token
in: header
schema:
type: string
required:
- authorization
responses:
200:
description: Dislike retrieved successfully
schema:
$ref: '#definitions/success'
404:
$ref: '#responses/Notfound'
401:
$ref: '#responses/BadRequest'
400:
$ref: '#responses/BadRequest'
/likes/dislike/{articleslug}:
put:
summary: dislike an article
description: >
dislike an existing article which is not yours
tags:
- Like
produces:
- application/json
parameters:
- name: x-access-token
in: header
schema:
type: string
required:
- authorization
responses:
200:
description: Successfully disliked
schema:
$ref: '#definitions/success'
404:
$ref: '#responses/Notfound'
401:
$ref: '#responses/BadRequest'
400:
$ref: '#responses/BadRequest'
/likes/unlike/{articleslug}:
put:
summary: Unlike an article
description: >
unlike the article you arleady liked or disked
tags:
- Like
produces:
- application/json
parameters:
- name: x-access-token
in: header
schema:
type: string
required:
- authorization
responses:
200:
description: Successfully unliked
schema:
$ref: '#definitions/success'
404:
$ref: '#responses/Notfound'
401:
$ref: '#responses/BadRequest'
400:
$ref: '#responses/BadRequest'
tags:
- name: Like
description: Operations related to Article Claping and liking
responses:
success:
description: Success
schema:
$ref: '#/definitions/success'
BadRequest:
description: Bad request
schema:
$ref: '#/definitions/Error'
Notfound:
description: Not found
schema:
$ref: '#/definitions/Error'
definitions:
success:
type: object
properties:
status:
type: string
description: status code
message:
type: string
description: description of success
data:
type: string
description: data about success request
Error:
type: object
properties:
status:
type: string
description: status code
message:
type: string
description: description of error
Loading

0 comments on commit 22fb8d7

Please sign in to comment.