⚙️ Refactored saveSettings endpoint

This commit is contained in:
2023-09-15 15:49:13 -04:00
parent 1fff931941
commit 3efdc7c2e2
2 changed files with 432 additions and 416 deletions

720
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -56,11 +56,20 @@ export default class SettingsService extends Service {
settingsKey: string; settingsKey: string;
}> }>
) { ) {
try {
let query = {}; let query = {};
const { settingsKey, settingsObjectId } = ctx.params; const { settingsKey, settingsObjectId } =
const { hostname, protocol, port, username, password } = ctx.params;
ctx.params.settingsPayload; const {
hostname,
protocol,
port,
username,
password,
} = ctx.params.settingsPayload;
// Update, depending what key was passed in params
// 1. Construct the update query
switch (settingsKey) { switch (settingsKey) {
case "bittorrent": case "bittorrent":
console.log( console.log(
@@ -82,6 +91,9 @@ export default class SettingsService extends Service {
}; };
break; break;
case "directConnect": case "directConnect":
console.log(
`Recieved settings for ${settingsKey}, building query...`
);
const { hubs, airDCPPUserSettings } = const { hubs, airDCPPUserSettings } =
ctx.params.settingsPayload; ctx.params.settingsPayload;
query = { query = {
@@ -105,21 +117,23 @@ export default class SettingsService extends Service {
return false; return false;
} }
// 2. Set up options, filters
const options = { const options = {
upsert: true, upsert: true,
setDefaultsOnInsert: true, setDefaultsOnInsert: true,
returnDocument: "after",
}; };
const filter = { const filter = {
_id: settingsObjectId, _id: settingsObjectId,
}; };
// 3. Execute the mongo query
const result = await Settings.updateOne( const result = await Settings.findOneAndUpdate(
{}, {},
query, query,
options options
); );
console.log(result);
return result; return result;
} catch (err) {}
}, },
}, },
deleteSettings: { deleteSettings: {