aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/src/app/_data/Model.ts2
-rw-r--r--frontend/src/app/_pages/add-model/add-model.component.ts35
-rw-r--r--frontend/src/app/_services/models.service.ts18
3 files changed, 41 insertions, 14 deletions
diff --git a/frontend/src/app/_data/Model.ts b/frontend/src/app/_data/Model.ts
index 43342fb0..27527ca9 100644
--- a/frontend/src/app/_data/Model.ts
+++ b/frontend/src/app/_data/Model.ts
@@ -4,7 +4,7 @@ export default class Model {
public description: string = '',
public dateCreated: Date = new Date(),
public lastUpdated: Date = new Date(),
- public datasetId?: number,
+ public datasetId?: string,
// Test set settings
public inputColumns: string[] = [],
diff --git a/frontend/src/app/_pages/add-model/add-model.component.ts b/frontend/src/app/_pages/add-model/add-model.component.ts
index c18ad324..ac513738 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.ts
+++ b/frontend/src/app/_pages/add-model/add-model.component.ts
@@ -32,15 +32,26 @@ export class AddModelComponent implements OnInit {
}
addModel() {
- if (this.datasetLoadComponent)
- this.models.addDataset(this.datasetLoadComponent?.dataset);
-
- this.getCheckedInputCols();
- this.getCheckedOutputCol();
- if (this.validationInputsOutput())
- this.models.addModel(this.newModel).subscribe((response) => {
- console.log(response);
+ console.log('ADD MODEL: STEP 1 - UPLOAD FILE');
+ if (this.datasetLoadComponent) {
+ this.models.uploadData(this.datasetLoadComponent.files[0]).subscribe((fileId) => {
+ console.log('ADD MODEL: STEP 2 - ADD DATASET WITH FILE ID ' + fileId);
+ if (this.datasetLoadComponent) {
+ this.datasetLoadComponent.dataset.fileId = fileId;
+ this.models.addDataset(this.datasetLoadComponent.dataset).subscribe((datasetId) => {
+ console.log('ADD MODEL: STEP 3 - ADD MODEL WITH DATASET ID ' + datasetId);
+ this.newModel.datasetId = datasetId;
+ this.getCheckedInputCols();
+ this.getCheckedOutputCol();
+ if (this.validationInputsOutput())
+ this.models.addModel(this.newModel).subscribe((response) => {
+ console.log('ADD MODEL: DONE! REPLY:\n' + response);
+ });
+ }
+ );
+ }
});
+ }
}
getCheckedInputCols() {
@@ -62,17 +73,17 @@ export class AddModelComponent implements OnInit {
let thatRb = <HTMLInputElement>radiobuttons[i];
if (thatRb.checked) {
this.newModel.columnToPredict = thatRb.value;
- break;
+ break;
}
}
//console.log(this.checkedOutputCol);
}
- validationInputsOutput() : boolean {
+ validationInputsOutput(): boolean {
if (this.newModel.inputColumns.length == 0) {
alert("Molimo Vas da izaberete ulaznu kolonu/kolone za mrežu.")
return false;
- }
- for (let i = 0; i < this.newModel.inputColumns.length; i++) {
+ }
+ for (let i = 0; i < this.newModel.inputColumns.length; i++) {
if (this.newModel.inputColumns[i] == this.newModel.columnToPredict) {
let colName = this.newModel.columnToPredict;
alert("Izabrali ste istu kolonu (" + colName + ") kao ulaznu i izlaznu iz mreže. Korigujte izbor.");
diff --git a/frontend/src/app/_services/models.service.ts b/frontend/src/app/_services/models.service.ts
index f85ca44e..7e42b7d6 100644
--- a/frontend/src/app/_services/models.service.ts
+++ b/frontend/src/app/_services/models.service.ts
@@ -1,9 +1,10 @@
-import { HttpClient } from '@angular/common/http';
+import { HttpClient, HttpParams, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import Model from '../_data/Model';
import { AuthService } from './auth.service';
import { API_SETTINGS } from 'src/config';
import Dataset from '../_data/Dataset';
+import { Observable } from 'rxjs';
@Injectable({
@@ -13,6 +14,21 @@ export class ModelsService {
constructor(private http: HttpClient, private authService: AuthService) { }
+ uploadData(file: File): Observable<any> {
+ let formData = new FormData();
+ formData.append('file', file, file.name);
+
+ let params = new HttpParams();
+
+ const options = {
+ params: params,
+ reportProgress: true,
+ };
+
+ const req = new HttpRequest('POST', `${API_SETTINGS.apiURL}/file/csv`, formData, options);
+ return this.http.request(req);
+ }
+
addModel(model: Model) {
return this.http.post(`${API_SETTINGS.apiURL}/model/sendModel`, model, { headers: this.authService.authHeader(), responseType: 'text' });
}