Skip to content

Commit

Permalink
Merge 618faf3 into d3b3327
Browse files Browse the repository at this point in the history
  • Loading branch information
azupatrick0 authored Dec 5, 2018
2 parents d3b3327 + 618faf3 commit 265d93c
Show file tree
Hide file tree
Showing 20 changed files with 11,525 additions and 11,109 deletions.
12 changes: 7 additions & 5 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"presets": [
"@babel/preset-env"
],
"plugins": ["@babel/plugin-transform-runtime"]
}
"presets": [
"@babel/preset-env"
],
"plugins": [
"@babel/plugin-transform-runtime"
]
}
55 changes: 39 additions & 16 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,34 +1,57 @@
{
"root": true,
"parser": "babel-eslint" ,
"extends": "airbnb-base",
"env": {
"node": true,
"es6": true,
"mocha": true
},
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 6
},
"rules": {
"consistent-return":"error",
"consistent-return": "error",
"no-param-reassign": "warn",
"comma-dangle": 0,
"curly": ["error", "multi-line"],
"import/no-unresolved": [2, { "commonjs": true }],
"no-shadow": ["error", { "allow": ["req", "res", "err"] }],
"valid-jsdoc": ["error", {
"requireReturn": true,
"requireReturnType": true,
"requireParamDescription": false,
"requireReturnDescription": true
}],
"require-jsdoc": ["error", {
"curly": [
"error",
"multi-line"
],
"import/no-unresolved": [
2,
{
"commonjs": true
}
],
"no-shadow": [
"error",
{
"allow": [
"req",
"res",
"err"
]
}
],
"valid-jsdoc": [
"error",
{
"requireReturn": true,
"requireReturnType": true,
"requireParamDescription": false,
"requireReturnDescription": true
}
],
"require-jsdoc": [
"error",
{
"require": {
"FunctionDeclaration": true,
"MethodDefinition": true,
"ClassDeclaration": true
"FunctionDeclaration": true,
"MethodDefinition": true,
"ClassDeclaration": true
}
}]
}
]
}
}
6 changes: 3 additions & 3 deletions controllers/AuthController.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class AuthController {
static async signUp(req, res) {
// console.log('------->', req.body);
const { email, password, username } = req.body;
const { Users, Roles } = usersModel;
const { users, roles } = usersModel;

// validation check here
const genSalt = bcrypt.genSaltSync(8);
Expand All @@ -38,13 +38,13 @@ class AuthController {
}
try {
const emailVerification = 'false';
const userData = await Users.create({
const userData = await users.create({
email,
password: hashPassword,
username,
emailVerification
});
await Roles.create({
await roles.create({
role,
userId: userData.id
});
Expand Down
146 changes: 146 additions & 0 deletions controllers/ProfilesController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
import jwtDecode from 'jwt-decode';
import model from '../models';
import Response from '../helpers/statusResponse';

const { profiles } = model;

/**
* @description - This class is all about users
* @param {object} req
* @param {object} res
* @returns {class} Users
*/
class ProfilesController {
/**
* @description - This method takes care of creating a users profile after registration
* @param {object} req
* @param {object} res
* @returns {object} Created Users Profile
*/
static async createProfile(req, res) {
try {
const usersProfile = await profiles.create({
userId: req.params.userId,
username: req.body.username,
biodata: req.body.biodata,
image: req.body.image,
address: req.body.address,
dateofbirth: req.body.dateofbirth
});
if (usersProfile) {
Response.created(res, {
message: 'Users profile created succesfully',
profile: usersProfile
});
}
} catch (error) {
Response.internalServerError(res, {
message: 'users profile not created succesfully, please try again',
error: {
body: [
`Internal server error => ${error}`
]
}
});
}
}

/**
* @description - This method takes care of a user viewing his or other people's profile
* @param {object} req
* @param {object} res
* @returns {object} Users Profile
*/
static async viewProfile(req, res) {
try {
const usersProfile = await profiles.findOne({
where: {
username: req.params.username
}
});
if (usersProfile === null) {
Response.notfound(res, {
message: 'Users profile not found',
profile: usersProfile
});
} else {
Response.success(res, {
message: 'Users profile returned succesfully',
profile: usersProfile
});
}
} catch (error) {
Response.internalServerError(res, {
message: 'users profile not returned succesfully, please try again',
error: {
body: [
`Internal server error => ${error}`
]
}
});
}
}

/**
* @description - This method takes care of updating a user's profile
* @param {object} req
* @param {object} res
* @returns {object} Updated Users Profile
*/
static async updateProfile(req, res) {
const decoded = jwtDecode(req.body.token).username;
if (decoded !== req.params.username) {
Response.unauthorized(res, {
errors: {
body: [
'You cannot edit another persons profile'
]
}
});
}

try {
const usersProfile = await profiles.findOne({
where: {
username: req.params.username
}
});
if (usersProfile) {
try {
const updatedUsersProfile = await usersProfile.update({
biodata: req.body.biodata || usersProfile.biodata,
image: req.body.image || usersProfile.image,
address: req.body.address || usersProfile.address,
dateofbirth: req.body.dateofbirth || usersProfile.dateofbirth
});
if (updatedUsersProfile) {
Response.success(res, {
message: 'Users profile updated successfully',
profile: updatedUsersProfile
});
}
} catch (error) {
Response.internalServerError(res, {
message: 'users profile not returned succesfully, please try again',
error: {
body: [
`Internal server error => ${error}`
]
}
});
}
}
} catch (error) {
Response.internalServerError(res, {
message: 'users profile not returned succesfully, please try again',
error: {
body: [
`Internal server error => ${error}`
]
}
});
}
}
}

export default ProfilesController;
Loading

0 comments on commit 265d93c

Please sign in to comment.