From 9822be5df416795e4490a425958073fba41b9ff9 Mon Sep 17 00:00:00 2001 From: Eric Lighthall <55029902+Eric-Lighthall@users.noreply.github.com> Date: Sat, 20 Apr 2024 01:06:53 -0700 Subject: [PATCH] Add version service module for fetching server information this centralizes the handling of requests to get the server information --- src/services/VersionService.js | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/services/VersionService.js diff --git a/src/services/VersionService.js b/src/services/VersionService.js new file mode 100644 index 00000000..2aadf3bc --- /dev/null +++ b/src/services/VersionService.js @@ -0,0 +1,49 @@ +/** + * Copyright (C) 2024 Puter Technologies Inc. + * + * This file is part of Puter. + * + * Puter is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +let server_info = null; + +export async function fetchServerInfo(api_origin, auth_token) { + if (server_info) return server_info; + + try { + const res = await $.ajax({ + url: api_origin + "/version", + type: 'GET', + contentType: "application/json", + headers: { + "Authorization": "Bearer " + auth_token + }, + statusCode: { + 401: function () { + logout(); + } + } + }); + server_info = { + version: res.version, + location: res.location, + deployTimestamp: res.deploy_timestamp + }; + return server_info; + } catch (error) { + console.error('Failed to fetch server info:', error); + throw error; + } +}