DodoApp: Public API to fetch allowed networks
Update landing page to communicate with dodo-app backend.
Change-Id: I269ad5150b9203eca9c1c9cc9a8a99b55c583419
diff --git a/apps/landing/static/js/main.js b/apps/landing/static/js/main.js
index a068560..24e651e 100644
--- a/apps/landing/static/js/main.js
+++ b/apps/landing/static/js/main.js
@@ -139,3 +139,55 @@
fact.addEventListener("mouseover", () => handleMouseover(facts[index].params.image, index, facts[index].params.title));
});
});
+
+async function loadPublicData() {
+ let networkSelect = document.querySelector("select#network");
+ if (networkSelect === undefined) {
+ return;
+ }
+ networkSelect.innerHTML = "";
+ let appTypeSelect = document.querySelector("select#app-type");
+ if (appTypeSelect === undefined) {
+ return;
+ }
+ appTypeSelect.innerHTML = "";
+ let resp = await fetch("https://app.v1.dodo.cloud/api/public-data");
+ if (!resp.ok) {
+ return;
+ }
+ let data = await resp.json();
+ data.networks.forEach((network) => {
+ let opt = document.createElement("option");
+ opt.setAttribute("value", network.domain);
+ opt.innerHTML = network.domain;
+ networkSelect.appendChild(opt);
+ });
+ data.types.forEach((t) => {
+ let opt = document.createElement("option");
+ opt.setAttribute("value", t);
+ opt.innerHTML = t;
+ appTypeSelect.appendChild(opt);
+ });
+}
+
+function register() {
+ var data = {
+ type: document.getElementById("app-type").value,
+ adminPublicKey: document.getElementById("public-key").value,
+ network: document.getElementById("network").value,
+ subdomain: document.getElementById("subdomain").value,
+ };
+ fetch("https://app.v1.dodo.cloud/api/apps", {
+ method: "POST",
+ body: JSON.stringify(data),
+ }).then((resp) => {
+ resp.json().then((r) => {
+ console.log(r);
+ });
+ });
+ return false;
+}
+
+document.addEventListener("DOMContentLoaded", () => {
+ loadPublicData();
+});