Skip to content

Commit

Permalink
api fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Dragon1320 committed Oct 11, 2018
1 parent dd92631 commit 2f79b69
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 78 deletions.
1 change: 0 additions & 1 deletion src/db/schemas/guild.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ const guildScriptSchema = new Schema({
const memberPermSchema = new Schema({

member_id: { type: String, required: true },
allow_list: { type: Boolean, default: true },
list: [ String ]
}, {
_id: false
Expand Down
155 changes: 82 additions & 73 deletions src/web/routes/api/guilds.js
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,8 @@ router.route("/:discord_id").get(authUser, (req, res) => {
return e.id === req.params.discord_id;
});

if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && doc.member_perms.includes("patch_guild") === false)) {
const member_perms = doc.member_perms.find(e => e.member_id === req.user.discord_id);
if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && (member_perms === undefined || member_perms.list.includes("patch_guild") === false))) {

return res.json({ status: 403 });
}
Expand Down Expand Up @@ -305,7 +306,8 @@ router.route("/:discord_id").get(authUser, (req, res) => {
return e.id === req.params.discord_id;
});

if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && doc.member_perms.includes("delete_guild") === false)) {
const member_perms = doc.member_perms.find(e => e.member_id === req.user.discord_id);
if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && (member_perms === undefined || member_perms.list.includes("delete_guild") === false))) {

return res.json({ status: 403 });
}
Expand Down Expand Up @@ -494,33 +496,34 @@ router.route("/:discord_id/scripts").get(authUser, (req, res) => {
return res.json({ status: 403 });
}

doc2.guild_count++;

doc2
.save()
.then(() => {

getUserGuilds(req.session.discord.access_token)
.then(guilds => {

const current_guild = guilds.find(e => {

return e.id === req.params.discord_id;
});
getUserGuilds(req.session.discord.access_token)
.then(guilds => {

if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && doc.member_perms.includes("post_script") === false)) {

return res.json({ status: 403 });
}
const current_guild = guilds.find(e => {

const script = new schemas.GuildScriptSchema({
...params,
object_id
});

doc.scripts.push(script);
return e.id === req.params.discord_id;
});

const member_perms = doc.member_perms.find(e => e.member_id === req.user.discord_id);
if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && (member_perms === undefined || member_perms.list.includes("post_script") === false))) {

doc
return res.json({ status: 403 });
}

const script = new schemas.GuildScriptSchema({
...params,
object_id
});

doc.scripts.push(script);

doc
.save()
.then(() => {

doc2.guild_count++;

doc2
.save()
.then(() => {

Expand All @@ -533,13 +536,15 @@ router.route("/:discord_id/scripts").get(authUser, (req, res) => {
});
})
.catch(error => {

apiLogger.error(error);
return res.json({ status: 500 });
});
})
.catch(error => {


apiLogger.error(error);
return res.json({ status: 500 });
});
})
.catch(error => {
Expand Down Expand Up @@ -632,7 +637,8 @@ router.route("/:discord_id/scripts/:object_id").get(authUser, (req, res) => {
return e.id === req.params.discord_id;
});

if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && doc.member_perms.includes("patch_script") === false)) {
const member_perms = doc.member_perms.find(e => e.member_id === req.user.discord_id);
if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && (member_perms === undefined || member_perms.list.includes("patch_script") === false))) {

return res.json({ status: 403 });
}
Expand Down Expand Up @@ -702,75 +708,78 @@ router.route("/:discord_id/scripts/:object_id").get(authUser, (req, res) => {
return res.json({ status: 404 });
}

schemas.ScriptSchema
.findById(object_id)
.then(script => {
if (script === null) {

getUserGuilds(req.session.discord.access_token)
.then(guilds => {

const current_guild = guilds.find(e => {

return e.id === req.params.discord_id;
});

const member_perms = doc.member_perms.find(e => e.member_id === req.user.discord_id);
if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && (member_perms === undefined || member_perms.list.includes("delete_script") === false))) {

return res.json({ status: 403 });
}

let found = false;
for (let i = 0; i < doc.scripts.length; i++) {

if (doc.scripts[i].object_id.equals(object_id)) {

found = true;

doc.scripts.splice(i, 1);

break;
}
}

if (found === false) {

return res.json({ status: 404 });
}

script.guild_count--;

script

doc
.save()
.then(() => {

getUserGuilds(req.session.discord.access_token)
.then(guilds => {

const current_guild = guilds.find(e => {

return e.id === req.params.discord_id;
});

if (current_guild === undefined || (current_guild.owner === false && ((current_guild.permissions & 0b1000) !== 0b1000) && doc.member_perms.includes("delete_script") === false)) {

return res.json({ status: 403 });
}

schemas.ScriptSchema
.findById(object_id)
.then(script => {
if (script === null) {

let found = false;
for (let i = 0; i < doc.scripts.length; i++) {

if (doc.scripts[i].object_id.equals(object_id)) {

found = true;

doc.scripts.splice(i, 1);

break;
}
}

if (found === false) {

return res.json({ status: 404 });
}

doc

script.guild_count--;

script
.save()
.then(() => {

return res.json({ status: 200 });
})
.catch(error => {

apiLogger.error(error);
return res.json({ status: 500 });
});
})
.catch(error => {

apiLogger.error(error);
return res.json({ status: 500 });
});
})
.catch(error => {


apiLogger.error(error);
return res.json({ status: 500 });
});
})
.catch(error => {

apiLogger.error(error);
return res.json({ status: 500 });
});
Expand Down
10 changes: 6 additions & 4 deletions src/web/templates/dashboard/marketplace.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -833,8 +833,8 @@
if (scriptAddYay.status !== 200) {
toastr["error"](`failed to add script: ${scriptAddYay.response.status}`);
throw `failed to add script: ${scriptAddYay.response.status}`;
toastr["error"](`failed to add script: ${scriptAddYay.status}`);
throw `failed to add script: ${scriptAddYay.status}`;
return;
}
Expand Down Expand Up @@ -896,6 +896,8 @@
scriptRemoveRequest.open("DELETE", "/api/v3/guilds/" + currentServer + "/scripts/" + btn.id, false);
scriptRemoveRequest.send();
console.log(scriptRemoveRequest.response);
let scriptRemoveYay;
try {
Expand All @@ -908,8 +910,8 @@
if (scriptRemoveYay.status !== 200) {
toastr["error"](`failed to remove script: ${scriptRemoveYay.response.status}`);
throw `failed to remove script: ${scriptRemoveYay.response.status}`;
toastr["error"](`failed to remove script: ${scriptRemoveYay.status}`);
throw `failed to remove script: ${scriptRemoveYay.status}`;
return;
}
Expand Down

0 comments on commit 2f79b69

Please sign in to comment.