diff options
author | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-16 23:05:56 +0100 |
---|---|---|
committer | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-16 23:05:56 +0100 |
commit | 7aa1719639bb0a90114cca2c9a95e58bef22eef0 (patch) | |
tree | 719c42a7bc7fd3b95809e9cb97903bc2b268f8ff | |
parent | 5a04e31b7e63663f548fa7d9119ab947be46aedf (diff) |
Dodao upload file zahtev u ModelsService.
-rw-r--r-- | frontend/src/app/_data/Model.ts | 2 | ||||
-rw-r--r-- | frontend/src/app/_pages/add-model/add-model.component.ts | 35 | ||||
-rw-r--r-- | frontend/src/app/_services/models.service.ts | 18 |
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' }); } |