⚙️ Refactored saveSettings endpoint
This commit is contained in:
720
package-lock.json
generated
720
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -56,70 +56,84 @@ export default class SettingsService extends Service {
|
|||||||
settingsKey: string;
|
settingsKey: string;
|
||||||
}>
|
}>
|
||||||
) {
|
) {
|
||||||
let query = {};
|
try {
|
||||||
const { settingsKey, settingsObjectId } = ctx.params;
|
let query = {};
|
||||||
const { hostname, protocol, port, username, password } =
|
const { settingsKey, settingsObjectId } =
|
||||||
ctx.params.settingsPayload;
|
ctx.params;
|
||||||
|
const {
|
||||||
|
hostname,
|
||||||
|
protocol,
|
||||||
|
port,
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
} = ctx.params.settingsPayload;
|
||||||
|
|
||||||
switch (settingsKey) {
|
// Update, depending what key was passed in params
|
||||||
case "bittorrent":
|
// 1. Construct the update query
|
||||||
console.log(
|
switch (settingsKey) {
|
||||||
`Recieved settings for ${settingsKey}, building query...`
|
case "bittorrent":
|
||||||
);
|
console.log(
|
||||||
query = {
|
`Recieved settings for ${settingsKey}, building query...`
|
||||||
bittorrent: {
|
);
|
||||||
client: {
|
query = {
|
||||||
host: {
|
bittorrent: {
|
||||||
hostname,
|
client: {
|
||||||
protocol,
|
host: {
|
||||||
port,
|
hostname,
|
||||||
username,
|
protocol,
|
||||||
password,
|
port,
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
},
|
||||||
|
name: "qbittorrent",
|
||||||
},
|
},
|
||||||
name: "qbittorrent",
|
|
||||||
},
|
},
|
||||||
},
|
};
|
||||||
};
|
break;
|
||||||
break;
|
case "directConnect":
|
||||||
case "directConnect":
|
console.log(
|
||||||
const { hubs, airDCPPUserSettings } =
|
`Recieved settings for ${settingsKey}, building query...`
|
||||||
ctx.params.settingsPayload;
|
);
|
||||||
query = {
|
const { hubs, airDCPPUserSettings } =
|
||||||
directConnect: {
|
ctx.params.settingsPayload;
|
||||||
client: {
|
query = {
|
||||||
host: {
|
directConnect: {
|
||||||
hostname,
|
client: {
|
||||||
protocol,
|
host: {
|
||||||
port,
|
hostname,
|
||||||
username,
|
protocol,
|
||||||
password,
|
port,
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
},
|
||||||
|
hubs,
|
||||||
|
airDCPPUserSettings,
|
||||||
},
|
},
|
||||||
hubs,
|
|
||||||
airDCPPUserSettings,
|
|
||||||
},
|
},
|
||||||
},
|
};
|
||||||
};
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const options = {
|
// 2. Set up options, filters
|
||||||
upsert: true,
|
const options = {
|
||||||
setDefaultsOnInsert: true,
|
upsert: true,
|
||||||
};
|
setDefaultsOnInsert: true,
|
||||||
const filter = {
|
returnDocument: "after",
|
||||||
_id: settingsObjectId,
|
};
|
||||||
};
|
const filter = {
|
||||||
|
_id: settingsObjectId,
|
||||||
const result = await Settings.updateOne(
|
};
|
||||||
{},
|
// 3. Execute the mongo query
|
||||||
query,
|
const result = await Settings.findOneAndUpdate(
|
||||||
options
|
{},
|
||||||
);
|
query,
|
||||||
console.log(result);
|
options
|
||||||
return result;
|
);
|
||||||
|
return result;
|
||||||
|
} catch (err) {}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
deleteSettings: {
|
deleteSettings: {
|
||||||
|
|||||||
Reference in New Issue
Block a user