generated from azures04/Photino-Boilerplate
Refactored endpoints, added source/metadat to frontend
This commit is contained in:
parent
07398a9eac
commit
f1511f1d3d
@ -6,14 +6,24 @@ namespace BrikInstaller;
|
||||
|
||||
public static class Constants {
|
||||
public static readonly JsonSerializerOptions _jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
|
||||
public static readonly string os = OsHelper.getOperatingSystem();
|
||||
public static readonly string arch = OsHelper.getArchitecture();
|
||||
public static readonly string Os = OsHelper.getOperatingSystem();
|
||||
public static readonly string Arch = OsHelper.getArchitecture();
|
||||
|
||||
public static readonly string env = "DEV";
|
||||
public static readonly string __dirname = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
|
||||
public static readonly string Env = "DEV";
|
||||
public static readonly string BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
|
||||
public static readonly string CurrentWorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
|
||||
|
||||
public static class URLs {
|
||||
public static readonly string basePoint = "https://brik.azures.fr/products";
|
||||
public static readonly string ApiPoint = "https://brik.azures.fr";
|
||||
public static class Endpoints {
|
||||
public static string Manifest(string softName, string os, string arch)
|
||||
=> $"{ApiPoint}/products/{softName}/{os}-{arch}/manifest";
|
||||
|
||||
public static string Download(string softName, string os, string arch)
|
||||
=> $"{ApiPoint}/products/{softName}/{os}-{arch}/download/";
|
||||
|
||||
public static string Metadata()
|
||||
=> $"{ApiPoint}/metadata";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -14,10 +14,10 @@ class Program{
|
||||
}
|
||||
|
||||
public static PhotinoWindow CreateMainWindow() {
|
||||
BrikPackage bpkg = new BrikPackage(Path.Combine(Constants.__dirname, "root.dat"), 66);
|
||||
BrikPackage bpkg = new BrikPackage(Path.Combine(Constants.CurrentWorkingDirectory, "root.dat"), 66);
|
||||
List<string> entries = bpkg.ListEntries();
|
||||
foreach (string entry in entries) {
|
||||
Console.WriteLine(entry);
|
||||
Console.WriteLine($"[File] > entry");
|
||||
}
|
||||
var window = new PhotinoWindow()
|
||||
.SetTitle("Brik Installer")
|
||||
@ -122,7 +122,7 @@ class Program{
|
||||
case "installer::install":
|
||||
if (jsonPayload.TryGetProperty("soft", out var softName) && jsonPayload.TryGetProperty("path", out var softInstallPath)) {
|
||||
try {
|
||||
await GenericFilesService.SyncFilesAsync($"{Constants.URLs.basePoint}/{softName}/{Constants.os}-{Constants.arch}/download/", $"{Constants.URLs.basePoint}/{softName}/{Constants.os}-{Constants.arch}/manifest", softInstallPath.ToString());
|
||||
await GenericFilesService.SyncFilesAsync(Constants.URLs.Endpoints.Download(softName.ToString(), Constants.Os, Constants.Arch), Constants.URLs.Endpoints.Download(softName.ToString(), Constants.Os, Constants.Arch), softInstallPath.ToString());
|
||||
responsePayload = new { success = true };
|
||||
} catch (Exception) {
|
||||
responsePayload = new { success = false };
|
||||
@ -147,6 +147,17 @@ class Program{
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "brik::metadata":
|
||||
try {
|
||||
HttpMethod httpMethod = HttpMethod.Get;
|
||||
var response = await HttpHelper.FetchAsync(Constants.URLs.Endpoints.Metadata(), httpMethod);
|
||||
string content = await response.Content.ReadAsStringAsync();
|
||||
Console.WriteLine(content);
|
||||
responsePayload = new { success = true, content = content.ToString() };
|
||||
} catch (Exception) {
|
||||
responsePayload = new { success = false };
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var finalResponse = new { requestId, payload = responsePayload };
|
||||
@ -159,7 +170,7 @@ class Program{
|
||||
}
|
||||
|
||||
public static void LoadPage(PhotinoWindow window, string url) {
|
||||
if (Constants.env == "PROD") {
|
||||
if (Constants.Env == "PROD") {
|
||||
window.Load($"http://internal/{url}");
|
||||
} else {
|
||||
window.Load($"src/resources/renderer/{url}");
|
||||
|
||||
@ -10,7 +10,7 @@ namespace BrikInstaller.Services;
|
||||
public static class RequirementsService {
|
||||
public static async Task<RequirementCheckingResponse> CheckRequirementsAsync(PhotinoWindow window, string softName) {
|
||||
try {
|
||||
string requirementsUrl = $"https://brik.azures.fr/products/{softName}/{Constants.os}-{Constants.arch}/requirements";
|
||||
string requirementsUrl = $"https://brik.azures.fr/products/{softName}/{Constants.Os}-{Constants.Arch}/requirements";
|
||||
|
||||
var response = await HttpHelper.FetchAsync(requirementsUrl, HttpMethod.Get);
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ details.language {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
aside > article.frame > section.author {
|
||||
aside > article.frame > section.source {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
position: fixed;
|
||||
@ -23,14 +23,14 @@ aside > article.frame > section.author {
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
aside > article.frame > section.author > img {
|
||||
aside > article.frame > section.source > img {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
margin-right: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
aside > article.frame > section.author > p {
|
||||
aside > article.frame > section.source > p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
||||
@ -198,7 +198,33 @@ async function quit() {
|
||||
await system.call("installer::quit", finishState)
|
||||
}
|
||||
|
||||
onFrameShowed("onboarding", () => {
|
||||
function setSourceLogo(url) {
|
||||
const sourceSection = document.querySelector("section.source")
|
||||
const sourceLogo = sourceSection.querySelector("img")
|
||||
sourceLogo.src = url
|
||||
}
|
||||
|
||||
function setSourceName(name) {
|
||||
const sourceSection = document.querySelector("section.source")
|
||||
const sourceName = sourceSection.querySelector("p")
|
||||
sourceName.innerText = name
|
||||
}
|
||||
|
||||
async function setupMetadata() {
|
||||
const metadata = await system.call("brik::metadata")
|
||||
if (metadata.success) {
|
||||
try {
|
||||
const parsed = JSON.parse(metadata.content)
|
||||
setSourceName(parsed.name)
|
||||
setSourceLogo(parsed.logo)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onFrameShowed("onboarding", async () => {
|
||||
await setupMetadata()
|
||||
const languageDropdown = document.querySelector("details.language")
|
||||
if (languageDropdown.getAttribute("value") == null) {
|
||||
hideFrameNavigationButtons()
|
||||
|
||||
@ -142,7 +142,7 @@
|
||||
</ul>
|
||||
</section>
|
||||
</details>
|
||||
<section class="author">
|
||||
<section class="source">
|
||||
<img src="https://github.com/azures04.png?size=1024" alt="">
|
||||
<p>
|
||||
azures04
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user