Completed GetUser and GetOrg
This commit is contained in:
parent
da0660cdab
commit
7666a40e21
4 changed files with 83 additions and 27 deletions
|
|
@ -1,7 +1,61 @@
|
|||
async function GetUserDetails(req, res, next) {
|
||||
const { userID, password, updatedAt, ...user } = req.user.dataValues;
|
||||
const { User, Organization } = require('../../models/index');
|
||||
|
||||
return res.send(user);
|
||||
async function GetUserDetails(req, res, next) {
|
||||
const user = req.user;
|
||||
const userID = req.params.userID;
|
||||
|
||||
if (user.userID == userID) {
|
||||
return res.send(user);
|
||||
}
|
||||
|
||||
const result = await User.findOne({
|
||||
where: { userID: userID },
|
||||
include: [
|
||||
{
|
||||
model: Organization,
|
||||
as: 'memberOrgs',
|
||||
include: [
|
||||
{
|
||||
model: User,
|
||||
as: 'orgMembers',
|
||||
where: { userID: user.userID },
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
model: User,
|
||||
as: 'orgOwner',
|
||||
where: { userID: user.userID },
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
model: Organization,
|
||||
as: 'ownedOrg',
|
||||
include: {
|
||||
model: User,
|
||||
as: 'orgMembers',
|
||||
where: { userID: user.userID },
|
||||
required: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
if (!result) {
|
||||
return res.status(500).send('No user with that ID exists.');
|
||||
}
|
||||
|
||||
const filteredResult = result.memberOrgs.filter(
|
||||
(org) => org.orgMembers.length != 0 || org_owner
|
||||
);
|
||||
|
||||
if (filteredResult.length == 0 && result.ownedOrg.orgMembers.length == 0) {
|
||||
return res.status(403).send('You do not have contact with this user.');
|
||||
}
|
||||
|
||||
const { memberOrgs, ownedOrg, ...newResult } = result;
|
||||
return res.send(newResult.dataValues);
|
||||
}
|
||||
|
||||
module.exports = GetUserDetails;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ const ResetPassword = require('./auth/ResetPassword');
|
|||
router.post('/register', CreateUser);
|
||||
router.post('/login', basicAuth, Login);
|
||||
router.post('/logout', tokenAuth, Logout);
|
||||
router.get('/', tokenAuth, GetUserDetails);
|
||||
router.get('/:userID', tokenAuth, GetUserDetails);
|
||||
router.patch('/update', tokenAuth, UpdateUserDetails);
|
||||
router.get('/reset-password', RequestReset);
|
||||
router.patch('/reset-password/:id', ResetPassword);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ async function CreateOrg(req, res, next) {
|
|||
}
|
||||
|
||||
const existing = user.getOwnedOrg();
|
||||
if (existing == {}) {
|
||||
if (existing) {
|
||||
return res
|
||||
.status(500)
|
||||
.send(
|
||||
|
|
|
|||
|
|
@ -1,39 +1,41 @@
|
|||
const { Op } = require('sequelize');
|
||||
|
||||
const { Organization } = require('../../models/index');
|
||||
const { Organization, User } = require('../../models/index');
|
||||
|
||||
async function GetOrgDetails(req, res, next) {
|
||||
const user = req.user;
|
||||
const orgID = req.params.orgID;
|
||||
|
||||
const result = await Organization.findOne({
|
||||
where: {
|
||||
orgID: orgID,
|
||||
},
|
||||
}).then(async (result) => {
|
||||
if (!result) {
|
||||
return;
|
||||
}
|
||||
|
||||
const owner = result.ownerID == user.userID;
|
||||
const member = await result.countUsers({
|
||||
where: { userID: user.userID },
|
||||
});
|
||||
|
||||
if (owner || member) {
|
||||
return result;
|
||||
}
|
||||
where: { orgID: orgID },
|
||||
include: [
|
||||
{
|
||||
model: User,
|
||||
as: 'orgOwner',
|
||||
where: { userID: user.userID },
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
model: User,
|
||||
as: 'orgMembers',
|
||||
where: { userID: user.userID },
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
console.log(result);
|
||||
|
||||
if (!result) {
|
||||
return res
|
||||
.status(500)
|
||||
.send('You do not know any organizations with this id.');
|
||||
return res.status(500).send('There is no organization with this id.');
|
||||
}
|
||||
|
||||
return res.send(result);
|
||||
// if (!result.orgOwner && result.orgMembers.length == 0) {
|
||||
// return res
|
||||
// .status(500)
|
||||
// .send('You do not know any organizations with this id.');
|
||||
// }
|
||||
|
||||
const { orgOwner, orgMembers, ...newResult } = result;
|
||||
return res.send(newResult.dataValues);
|
||||
}
|
||||
|
||||
module.exports = GetOrgDetails;
|
||||
|
|
|
|||
Reference in a new issue