From 6c431b300b913cfe129af78bdf1596e6b1164ebc Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Thu, 18 Nov 2021 14:16:55 -0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Fleshing=20out=20save=20and=20ge?= =?UTF-8?q?t=20settings=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/settings.model.ts | 30 ++++++++++++++--------------- services/api.service.ts | 6 ++---- services/settings.service.ts | 37 ++++++++++++++++++++++++++++++++++-- 3 files changed, 51 insertions(+), 22 deletions(-) diff --git a/models/settings.model.ts b/models/settings.model.ts index dccc497..b193eaa 100644 --- a/models/settings.model.ts +++ b/models/settings.model.ts @@ -2,21 +2,19 @@ const mongoose = require("mongoose"); const paginate = require("mongoose-paginate-v2"); const SettingsScehma = mongoose.Schema({ - directConnect: { - client: { - name: String, - version: String, - hostname: String, - port: Number, - https: Boolean, - username: String, - password: String, - hubs: [{ - - }] - } - } -}) + directConnect: { + client: { + name: String, + version: String, + airdcppUserSettings: Object, + hostname: String, + protocol: String, + username: String, + password: String, + hubs: [{}], + }, + }, +}); const Settings = mongoose.model("Settings", SettingsScehma); -export default Settings; \ No newline at end of file +export default Settings; diff --git a/services/api.service.ts b/services/api.service.ts index b8e4d99..ef5ea33 100644 --- a/services/api.service.ts +++ b/services/api.service.ts @@ -111,7 +111,7 @@ export default class ApiService extends Service { action.data, {} ); - + break; } }); @@ -142,9 +142,7 @@ export default class ApiService extends Service { stat.mtime.getTime() === previousPath.mtime.getTime() ) { - logger.info( - "File copy complete, starting import..." - ); + logger.info("File detected, starting import..."); const walkedFolders: IFolderData = await broker.call("import.walkFolders", { basePathToWalk: path, diff --git a/services/settings.service.ts b/services/settings.service.ts index 0cba9a0..5f1b256 100644 --- a/services/settings.service.ts +++ b/services/settings.service.ts @@ -8,6 +8,7 @@ import { } from "moleculer"; import { DbMixin } from "../mixins/db.mixin"; import Settings from "../models/settings.model"; +import { isEmpty } from "lodash"; export default class SettingsService extends Service { // @ts-ignore @@ -27,14 +28,46 @@ export default class SettingsService extends Service { getSettings: { rest: "GET /getAllSettings", params: {}, - async handler(ctx: Context<{}>) {}, + async handler( + ctx: Context<{ settingsKey: string }> + ) { + const settings = await Settings.find({}); + if (isEmpty(settings)) { + return {}; + } + console.log(settings[0]); + return settings[0]; + }, }, saveSettings: { rest: "POST /saveSettings", params: {}, - async handler(ctx: Context<{}>) { + async handler( + ctx: Context<{ + settingsObject: { + hostname: string; + protocol: string; + username: string; + password: string; + }; + airdcppUserSettings: object; + }> + ) { console.log(ctx.params); + const { settingsObject, airdcppUserSettings } = + ctx.params; + + const result = await Settings.create({ + directConnect: { + client: { + ...settingsObject, + airdcppUserSettings, + }, + }, + }); + console.log("ASDASD", result); + return result; }, }, },