Add py api, WIP dl log

This commit is contained in:
pakintada@gmail.com 2023-09-20 13:35:36 +07:00
parent 35b8b3be57
commit b49b2235db
7 changed files with 159 additions and 111 deletions

View file

@ -67,6 +67,10 @@ const routes: Routes = [
},
],
},
{
path: 'log',
loadComponent: () => import('./features/changelog/changelog.component').then((m) => m.ChangelogComponent),
},
{
path: '**',
pathMatch: 'full',

View file

@ -7,6 +7,8 @@ export class MergeServiceService {
master_version: number = 0;
dev_version: number = 0;
output_path:string = "";
changelog_path:string = "";
constructor() { }
}

View file

@ -26,12 +26,24 @@
<form class="space-y-6 p-3 bg-stone-500 rounded" [formGroup]="mergeForm" (ngSubmit)="fetchMerge()">
<div class="flex">
<label class="flex-1 text-red-700 font-bold bg-yellow-100 rounded text-center" for="master_version">Master</label>
<input class="flex-1 mx-1 bg-slate-300 hover:bg-blue-400 text-center border border-collapse rounded-md" id="master_version" formControlName="master_version" type="text">
<input class="flex-1 mx-1 bg-slate-300 hover:bg-blue-400 text-center border border-collapse rounded-md" id="master_version" formControlName="master_version" type="text" required>
</div>
<div class="flex">
<label class="flex-1 bg-yellow-100 font-bold rounded text-center" for="dev_version">Dev</label>
<input class="flex-1 mx-1 bg-slate-300 hover:bg-blue-400 text-center border border-collapse rounded-md" id="dev_version" formControlName="dev_version" type="text">
<input class="flex-1 mx-1 bg-slate-300 hover:bg-blue-400 text-center border border-collapse rounded-md" id="dev_version" formControlName="dev_version" type="text" required>
</div>
<!-- Output path -->
<div class="flex">
<label class="flex-1 bg-yellow-100 font-bold rounded text-center" for="output_path">Output Path</label>
<input class="flex-1 mx-1 bg-slate-300 hover:bg-blue-400 text-center border border-collapse rounded-md" id="output_path" formControlName="output_path" type="text" required>
</div>
<!-- Changelog path -->
<div class="flex">
<label class="flex-1 bg-yellow-100 font-bold rounded text-center" for="changelog_path">Changelog Path</label>
<input class="flex-1 mx-1 bg-slate-300 hover:bg-blue-400 text-center border border-collapse rounded-md" id="changelog_path" formControlName="changelog_path" type="text" required>
</div>
<button class="button font-semibold bg-red-300 p-4 border border-collapse rounded-md" type="submit">Begin Merge</button>

View file

@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
import { MergeServiceService } from './merge-service.service';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-merge',
@ -17,13 +18,16 @@ export class MergeComponent {
mergeForm = this.formBuilder.group({
master_version: 0,
dev_version: 0
dev_version: 0,
output_path: "",
changelog_path: ""
});
constructor(
private targets: MergeServiceService,
private formBuilder: FormBuilder,
private httpClient: HttpClient,
){}
private isException(value: any){
@ -36,14 +40,47 @@ export class MergeComponent {
}
this.targets.master_version = this.mergeForm.value.master_version!;
this.targets.dev_version = this.mergeForm.value.dev_version!;
this.targets.output_path = this.mergeForm.value.output_path!;
this.targets.changelog_path = this.mergeForm.value.changelog_path!;
// TODO: Fetch merge. Modify this to websocket
return fetch("http://localhost:3000/merge", {
method: "POST",
body: JSON.stringify({
master: this.targets.master_version,
dev: this.targets.dev_version
})
this.httpClient.post("http://localhost:8080/merge", {
master: this.targets.master_version,
dev: this.targets.dev_version,
output: this.targets.output_path,
changelog: this.targets.changelog_path
}, {
withCredentials: true
}).subscribe({
next(value) {
console.log(value)
},
})
}
downloadLogs(query: string){
let additionalParams:string = "?query=";
if(query != ""){
additionalParams += query
} else {
additionalParams = ""
}
this.httpClient.get("http://localhost:8080/dllog"+additionalParams, { responseType: 'blob' }).subscribe(
(data) => {
const blob = new Blob([data], { type: 'application/octet-stream' });
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'logfile.log';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
},
(error) => {
console.error('Error downloading log file: ',error);
}
)
}
}