From 8ccdc4e788ed6939887616c83010d298caeb7d68 Mon Sep 17 00:00:00 2001
From: ulrikof <ulrikof@stud.ntnu.no>
Date: Thu, 10 Oct 2024 11:56:36 +0200
Subject: [PATCH] made some minor improvements

---
 client/src/index.tsx        | 24 ++++++++++++------------
 client/src/task-service.tsx | 22 ++++++++++++++--------
 server/src/task-router.ts   | 27 +++++++++++++--------------
 3 files changed, 39 insertions(+), 34 deletions(-)

diff --git a/client/src/index.tsx b/client/src/index.tsx
index f7a8caf..1d44609 100644
--- a/client/src/index.tsx
+++ b/client/src/index.tsx
@@ -1,15 +1,15 @@
-import * as React from 'react';
-import { createRoot } from 'react-dom/client';
-import { Component } from 'react-simplified';
-import { HashRouter, Route } from 'react-router-dom';
-import { NavBar, Card, Alert, Row, Column, Form, Button } from './widgets';
-import taskService from './task-service';
+import * as React from "react";
+import { createRoot } from "react-dom/client";
+import { Component } from "react-simplified";
+import { HashRouter, Route } from "react-router-dom";
+import { NavBar, Card, Alert, Row, Column, Form, Button } from "./widgets";
+import taskService from "./task-service";
 
 class App extends Component {
-  input: string = '';
-  stdout: string = '';
-  stderr: string = '';
-  language = 'js';
+  input: string = "";
+  stdout: string = "";
+  stderr: string = "";
+  language = "js";
 
   render() {
     return (
@@ -62,10 +62,10 @@ class App extends Component {
   }
 }
 
-let root = document.getElementById('root');
+let root = document.getElementById("root");
 if (root)
   createRoot(root).render(
     <>
       <App></App>
-    </>,
+    </>
   );
diff --git a/client/src/task-service.tsx b/client/src/task-service.tsx
index 33a2552..7be9eec 100644
--- a/client/src/task-service.tsx
+++ b/client/src/task-service.tsx
@@ -1,6 +1,6 @@
-import axios from 'axios';
+import axios from "axios";
 
-axios.defaults.baseURL = 'http://localhost:3000/api/v2';
+axios.defaults.baseURL = "http://localhost:3000/api/v2";
 
 export type Task = {
   id: number;
@@ -8,15 +8,21 @@ export type Task = {
   done: boolean;
 };
 type Response_data = {
-  stdoutData: '';
-  stderrData: '';
+  stdoutData: "";
+  stderrData: "";
 };
 
 class TaskService {
-  create(input: string, language: string) {
-    return axios
-      .post<Response_data>('/tasks', { input: input, language: language })
-      .then((response) => response.data);
+  async create(input: string, language: string) {
+    try {
+      const response = await axios.post<Response_data>("/tasks", {
+        input: input,
+        language: language,
+      });
+      return response.data;
+    } catch (error) {
+      throw error;
+    }
   }
 }
 
diff --git a/server/src/task-router.ts b/server/src/task-router.ts
index 7535cb7..89e6b78 100644
--- a/server/src/task-router.ts
+++ b/server/src/task-router.ts
@@ -1,35 +1,34 @@
-import express from 'express';
+import express from "express";
+import { spawn } from "node:child_process";
 
 const router = express.Router();
 
-const { spawn } = require('node:child_process');
-
-router.post('/tasks', (request, response) => {
+router.post("/tasks", (request, response) => {
   const data = request.body.input;
   const language = request.body.language;
   let setup;
 
-  if (language === 'python') {
-    setup = ['run', '--rm', 'python:3.8', 'python', '-c', `${data}`];
-  } else if (language === 'js') {
-    setup = ['run', '--rm', 'node-image', 'node', '-e', `${data}`];
+  if (language === "python") {
+    setup = ["run", "--rm", "python:3.8", "python", "-c", `${data}`];
+  } else if (language === "js") {
+    setup = ["run", "--rm", "node:latest", "node", "-e", `${data}`];
   }
 
-  const ls = spawn('docker', setup);
+  const ls = spawn("docker", setup);
 
   let response_data = {
-    stdoutData: '',
-    stderrData: '',
+    stdoutData: "",
+    stderrData: "",
   };
-  ls.stdout.on('data', (data: string) => {
+  ls.stdout.on("data", (data: string) => {
     response_data.stdoutData += data;
   });
 
-  ls.stderr.on('data', (data: string) => {
+  ls.stderr.on("data", (data: string) => {
     response_data.stderrData += data;
   });
 
-  ls.on('close', (exit_status: number) => {
+  ls.on("close", (exit_status: number) => {
     response.send(response_data);
   });
 });
-- 
GitLab