Add POST SSE
continuous-integration/drone/push Build is passing Details

pull/2/head
Clément FRÉVILLE 1 year ago
parent 62a99938bb
commit 5b4839668d

6
package-lock.json generated

@ -23,6 +23,7 @@
"@ngx-translate/http-loader": "^8.0.0", "@ngx-translate/http-loader": "^8.0.0",
"codemirror": "^5.65.16", "codemirror": "^5.65.16",
"rxjs": "~7.8.1", "rxjs": "~7.8.1",
"sse.js": "^2.2.0",
"tslib": "^2.6.2", "tslib": "^2.6.2",
"zone.js": "~0.14.2" "zone.js": "~0.14.2"
}, },
@ -11298,6 +11299,11 @@
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true "dev": true
}, },
"node_modules/sse.js": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/sse.js/-/sse.js-2.2.0.tgz",
"integrity": "sha512-v1ciaikunC99FKS23rS973HYU0DnnvugtX13UggNvrgRUSungaGeLmKlm57t0dI2E1TcCqzc2Pj2njBDXFIpKQ=="
},
"node_modules/ssri": { "node_modules/ssri": {
"version": "10.0.5", "version": "10.0.5",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",

@ -25,6 +25,7 @@
"@ngx-translate/http-loader": "^8.0.0", "@ngx-translate/http-loader": "^8.0.0",
"codemirror": "^5.65.16", "codemirror": "^5.65.16",
"rxjs": "~7.8.1", "rxjs": "~7.8.1",
"sse.js": "^2.2.0",
"tslib": "^2.6.2", "tslib": "^2.6.2",
"zone.js": "~0.14.2" "zone.js": "~0.14.2"
}, },

@ -62,18 +62,6 @@ export class EditorComponent implements OnInit{
onRunButtonClicked() { onRunButtonClicked() {
// Le code à exécuter est le contenu de l'éditeur // Le code à exécuter est le contenu de l'éditeur
const codeToExecute = this.editorContent; const codeToExecute = this.editorContent;
this.codeExecutionService.executeCode(codeToExecute, this.mode);
this.codeExecutionService.executeCode(codeToExecute, this.mode).subscribe(
(response) => {
console.log('Réponse du serveur:', response);
console.log('Code qui va être exécuté:', codeToExecute);
// Redirigez vers une autre page (par exemple, 'output')
this.router.navigate(['/output']);
},
(error) => {
console.error('Erreur lors de l\'exécution du code:', error);
}
);
} }
} }

@ -1,6 +1,6 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs'; import { SSE } from 'sse.js';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
@ -10,7 +10,17 @@ export class CodeExecutionService {
constructor(private http: HttpClient) {} constructor(private http: HttpClient) {}
executeCode(code: string, language: string): Observable<any> { executeCode(code: string, language: string) {
return this.http.post<any>(this.apiUrl, { code, language }); const sse = new SSE(this.apiUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'text/event-stream',
},
payload: JSON.stringify({ code, language }),
});
sse.addEventListener('message', (event: MessageEvent<string>) => {
console.log(event.data);
});
} }
} }

Loading…
Cancel
Save