From 4ef90ce2bbc4e7467c00d89b9b02736353af831b Mon Sep 17 00:00:00 2001 From: Matthew Lopez <73856503+MatthewL246@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:01:24 -0500 Subject: [PATCH] Create new Miiverse endpoint creation script --- .../create-endpoint-in-database.js | 58 +++++++++++++++++++ .../create-server-in-database.js | 1 + scripts/update-account-servers-database.sh | 5 ++ 3 files changed, 64 insertions(+) create mode 100644 scripts/run-in-container/create-endpoint-in-database.js diff --git a/scripts/run-in-container/create-endpoint-in-database.js b/scripts/run-in-container/create-endpoint-in-database.js new file mode 100644 index 0000000..e290554 --- /dev/null +++ b/scripts/run-in-container/create-endpoint-in-database.js @@ -0,0 +1,58 @@ +// This should run in the miiverse-api container +const mongoose = require("mongoose"); +const { connect } = require("./dist/database"); +const { Endpoint } = require("./dist/models/endpoint"); + +async function runAsync() { + await connect(); + await resetEndpoints(); + + await createEndpoint( + 0, + "dev", + "api.olv.pretendo.cc", + "api.olv.pretendo.cc", + "portal.olv.pretendo.cc", + "ctr.olv.pretendo.cc" + ); + + await mongoose.connection.close(); +} + +runAsync().then(() => { + console.log("Done creating endpoints."); + process.exit(0); +}); + +async function resetEndpoints() { + console.log("Deleting all endpoints..."); + await Endpoint.deleteMany({}); + console.log("Endpoint collection reset."); +} + +async function createEndpoint( + status, + server_access_level, + host, + api_host, + portal_host, + n3ds_host +) { + const newEndpoint = new Endpoint({ + status: status, + server_access_level: server_access_level, + // Unused + topics: true, + // Unused + guest_access: true, + host: host, + api_host: api_host, + portal_host: portal_host, + n3ds_host: n3ds_host, + }); + + console.log("Saving new endpoint:"); + console.log(newEndpoint); + + await newEndpoint.save(); +} diff --git a/scripts/run-in-container/create-server-in-database.js b/scripts/run-in-container/create-server-in-database.js index 008d95d..bd22ce4 100644 --- a/scripts/run-in-container/create-server-in-database.js +++ b/scripts/run-in-container/create-server-in-database.js @@ -1,3 +1,4 @@ +// This should run in the account container const mongoose = require("mongoose"); const { connect } = require("./dist/database"); const { Server } = require("./dist/models/server"); diff --git a/scripts/update-account-servers-database.sh b/scripts/update-account-servers-database.sh index afbfac1..d5ef0c8 100755 --- a/scripts/update-account-servers-database.sh +++ b/scripts/update-account-servers-database.sh @@ -9,6 +9,7 @@ done git_base=$(git rev-parse --show-toplevel) create_server_script=$(cat "$git_base/scripts/run-in-container/create-server-in-database.js") +create_endpoint_script=$(cat "$git_base/scripts/run-in-container/create-endpoint-in-database.js") necessary_environment="friends miiverse-api wiiu-chat" . "$git_base/environment/system.local.env" @@ -26,5 +27,9 @@ docker compose exec -e COMPUTER_IP="$COMPUTER_IP" \ -e WIIU_CHAT_PORT="$PN_WIIU_CHAT_AUTHENTICATION_SERVER_PORT" \ account node -e "$create_server_script" +docker compose up -d miiverse-api + +docker compose exec miiverse-api node -e "$create_endpoint_script" + # TODO: Script should a PNID's access_level to 3 and server_access_level to dev # so users can access the servers