Newer
Older
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { SERVER_API_URL } from 'app/app.constants';
import { ArtemisExerciseInfo } from 'app/shared/model/artemis-exercise-info.model';
public resourceUrl = SERVER_API_URL + 'api/exercise/';
constructor(private http: HttpClient) {}
public loadExerciseFile(exerciseId: string, filePath: string): Observable<string> {
const headers = new HttpHeaders(); // .set('Content-Type', 'text/plain; charset=utf-8');
const options: HttpParams = new HttpParams();
options.append('filePath', filePath);
return this.http.get<string>(this.resourceUrl + exerciseId, {
headers,
params: new HttpParams().set('filePath', filePath),
responseType: 'text' as 'json',
});
}
/**
* Used on init of import page, this function passes the retrieved (from Artemis)
* exerciseUrl to the server
* @param exerciseUrl
*/
public importExerciseInfoFromArtemis(exerciseToken: string): Observable<ArtemisExerciseInfo> {
return this.http.get<ArtemisExerciseInfo>(`${this.resourceUrl}imported-exercise-info/${exerciseToken}`);
}
/**
* Submits an ArtemisExerciseInfo object to server and triggers its import
* @param exerciseInfo to submit and import
*/
public submitExerciseInfoForImport(exerciseInfo: ArtemisExerciseInfo, exerciseToken: string, gitlabGroupId: number) {
return this.http.post<ArtemisExerciseInfo>(`${this.resourceUrl}import-exercise/${exerciseToken}/${gitlabGroupId}`, exerciseInfo);