diff --git a/backend/controller/users.js b/backend/controller/users.js
index 5b031eb..26c568a 100644
--- a/backend/controller/users.js
+++ b/backend/controller/users.js
@@ -15,8 +15,9 @@ import {
//insert user to databased
export const signUp = async (req, res, next) => {
try {
- let sql = `SELECT id FROM users WHERE LOWER(username) = LOWER(?)`;
+ let sql = `SELECT id FROM users WHERE LOWER(username) = LOWER(?)`;
const result = await ownConn.execute(sql, [req.body.username])
+
if (result.length > 0) { //username already exists
return res.status(409).send({
message: 'This username is already in use!'
diff --git a/components/LoginForm.vue b/components/LoginForm.vue
index cd0fff3..411b896 100644
--- a/components/LoginForm.vue
+++ b/components/LoginForm.vue
@@ -88,9 +88,9 @@ const testFunctionSignup = async () => {
isError.value = false;
errorMsg.value = '';
- const username = 'maria'
- const password = 'maria123'
- const password_repeat = 'maria123'
+ const username = 'franzzzzzrtg'
+ const password = '112345678'
+ const password_repeat = '112345678'
const fullName = 'hallo'
const email = 'test.sdj@web.de'
const phonenumber = '015736283729'
@@ -126,11 +126,10 @@ const testFunctionSignup = async () => {
let res = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/signup`, requestBody);
// something to do with the res?
- console.log(res.data)
+ console.log(res)
} catch (err) {
// handle the error
- // console.log(err)
console.log(err.response.statusText)
isError.value = true;
errorMsg.value = err.response.statusText;
diff --git a/components/server/Asset.vue b/components/server/Asset.vue
index 594291d..e1a0b9a 100644
--- a/components/server/Asset.vue
+++ b/components/server/Asset.vue
@@ -9,8 +9,14 @@
Client:
{{ item.customer }}
-
+
+
Location:
@@ -89,6 +95,9 @@ const deleteAssetBool = computed(() => store.state.deleteAsset)
const darkMode = ref(true)
const item = ref({});
+const customer = ref({});
+const configItems = ref([]);
+const customers = ref([]);
// get config item from id
const getItemById = async () => {
@@ -109,13 +118,13 @@ const updateConfigItem = async () => {
return;
} else {
var counter = 0;
- //later check if ci already exists
- // for (let key in item.value) {
- // if (this.configItems[key].assetName === this.item.assetName) {
- // counter += 1;
- // }
- // }
- if (counter == 1) {
+ // check if config item name already exists
+ configItems.value.forEach(ci => {
+ if (ci.assetName === item.value.assetName) {
+ counter += 1;
+ }
+ });
+ if (counter == 2) {
alert("This asset name already exists. Please choose an unique asset name or modify respectively delete the old one!");
return;
}
@@ -160,6 +169,17 @@ const updateConfigItem = async () => {
}
}
+//get all customers
+const getCustomers = async () => {
+ try {
+ const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllCustomers`
+ );
+ customers.value = response.data;
+ } catch (err) {
+ console.log(err.response.statusText);
+ }
+}
+
const confirmDeleteAsset = async () => {
if (deleteAssetBool.value === true) {
if (confirm("Do you really want to delete this config item? It cannot be undone!")) {
@@ -176,10 +196,34 @@ const confirmDeleteAsset = async () => {
}
}
+//get all config items
+const getConfigItems = async () => {
+ try {
+ const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllConfigItems`);
+ configItems.value = response.data;
+ } catch (err) {
+ console.log(err.response.statusText);
+ }
+}
+
+// update customerid if customer was changed
+const updateCustomerID = async () => {
+ try {
+ const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCustomerByName/${item.value.customer}`);
+ customer.value = response.data;
+ item.value.customerID = customer.value.customerID;
+ } catch (err) {
+ console.log(err.response.statusText);
+ }
+ await updateConfigItem();
+}
+
watch(deleteAssetBool, confirmDeleteAsset);
onMounted(() => {
getItemById();
+ getConfigItems();
+ getCustomers();
});
@@ -397,4 +441,20 @@ export default {
.rectangle-lightmode {
background-color: #EBEBEB;
}
+
+.select-darkmode {
+ border: none;
+ color: white;
+ background: #212121;
+ padding: 0.4rem;
+ border-radius: 0.3125rem;
+}
+
+.select-lightmode {
+ border: none;
+ color: black;
+ background: #EBEBEB;
+ padding: 0.4rem;
+ border-radius: 0.3125rem;
+}
diff --git a/server/api/getAllCustomers.ts b/server/api/getAllCustomers.ts
new file mode 100644
index 0000000..00a2fad
--- /dev/null
+++ b/server/api/getAllCustomers.ts
@@ -0,0 +1,22 @@
+import { customers, errorMsg } from "../middleware/customers";
+import { OutgoingMessage } from 'http';
+
+export default defineEventHandler(async (event) => {
+
+ const headers: Record
[1]> = {
+ 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
+ 'Access-Control-Allow-Headers': 'authorization, content-type',
+ 'Access-Control-Allow-Methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
+ };
+ setResponseHeaders(event, headers)
+
+ if (!(errorMsg === '')) {
+ throw createError({
+ statusCode: 400,
+ statusMessage: errorMsg,
+ })
+ }
+
+ setResponseStatus(event, 200)
+ return customers
+})
diff --git a/server/api/getCustomerByName/[id].ts b/server/api/getCustomerByName/[id].ts
new file mode 100644
index 0000000..3d6b008
--- /dev/null
+++ b/server/api/getCustomerByName/[id].ts
@@ -0,0 +1,22 @@
+import { customerObject, errorMsg } from "../../middleware/customers";
+import { OutgoingMessage } from 'http';
+
+export default defineEventHandler(async (event) => {
+
+ const headers: Record[1]> = {
+ 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
+ 'Access-Control-Allow-Headers': 'authorization, content-type',
+ 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
+ };
+ setResponseHeaders(event, headers)
+
+ if (!(errorMsg === '')) {
+ throw createError({
+ statusCode: 400,
+ statusMessage: errorMsg,
+ })
+ }
+
+ setResponseStatus(event, 200)
+ return customerObject
+})
diff --git a/server/api/login.ts b/server/api/login.ts
index facceda..5269acc 100644
--- a/server/api/login.ts
+++ b/server/api/login.ts
@@ -3,14 +3,6 @@ import { OutgoingMessage } from 'http';
export default defineEventHandler(async (event) => {
- const headers: Record[1]> = {
- 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
- 'Access-Control-Allow-Headers': 'authorization, content-type',
- 'Access-Control-Allow-Methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
- 'Access-Control-Max-Age': '86400',
- };
- setResponseHeaders(event, headers)
-
if (!loginSuccessful) {
throw createError({
statusCode: 400,
diff --git a/server/api/signup.ts b/server/api/signup.ts
index 3afb384..a81e016 100644
--- a/server/api/signup.ts
+++ b/server/api/signup.ts
@@ -1,16 +1,8 @@
-import { registeringSuccessful, errorMsg } from "../middleware/signUp.js";
-import { OutgoingMessage } from 'http';
+import { errorMsg } from "../middleware/signUp.js";
export default defineEventHandler(async (event) => {
- const headers: Record[1]> = {
- 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
- 'Access-Control-Allow-Headers': 'authorization, content-type',
- 'Access-Control-Allow-Methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
- };
- setResponseHeaders(event, headers)
-
- if (!registeringSuccessful) {
+ if (!(errorMsg === '')) {
throw createError({
statusCode: 400,
statusMessage: errorMsg,
diff --git a/server/api/updateConfigItem.ts b/server/api/updateConfigItem.ts
index bf12cff..2a5589a 100644
--- a/server/api/updateConfigItem.ts
+++ b/server/api/updateConfigItem.ts
@@ -1,5 +1,4 @@
import { errorMsg } from "../middleware/configItems";
-import { OutgoingMessage } from 'http';
export default defineEventHandler(async (event) => {
diff --git a/server/middleware/customers.ts b/server/middleware/customers.ts
new file mode 100644
index 0000000..801e2e0
--- /dev/null
+++ b/server/middleware/customers.ts
@@ -0,0 +1,84 @@
+import axios, { AxiosError } from 'axios';
+import serversideConfig from '../../serversideConfig';
+import https from 'https';
+
+let customers = [];
+let customerObject = [];
+let errorMsg = '';
+
+export default defineEventHandler(async (event) => {
+
+ const agent = new https.Agent({
+ rejectUnauthorized: false,
+ });
+
+ const axiosInstance = axios.create({
+ headers: {
+ 'Content-Type': 'application/json',
+ Accept: "*",
+ },
+ httpsAgent: agent
+ });
+
+ if (event.path.startsWith("/api/getAllCustomers")) {
+ // get all customers object from backend
+ try {
+ let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/customers`);
+ customers = res.data;
+ } catch (err) {
+ if (axios.isAxiosError(err)) {
+ const axiosError = err as AxiosError;
+
+ if (axiosError.response) {
+ // Axios error
+ console.error(axiosError.response.data.message);
+ errorMsg = axiosError.response.data.message;
+ } else if (axiosError.request) {
+ console.log(err)
+ // If error was caused by the request
+ console.error(axiosError.request);
+ } else {
+ // Other errors
+ console.error('Error', axiosError.message);
+ }
+ } else {
+ // No AxiosError
+ console.error('Error', err);
+ }
+ }
+ }
+
+ if (event.path.startsWith("/api/getCustomerByName")) {
+ // get customer object from backend
+ let itemId = null;
+ const path = event._path;
+ const pathSegments = path.split('/');
+ itemId = pathSegments[pathSegments.length - 1];
+
+ try {
+ let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/customerName/${itemId}`);
+ customerObject = res.data;
+ } catch (err) {
+ if (axios.isAxiosError(err)) {
+ const axiosError = err as AxiosError;
+
+ if (axiosError.response) {
+ // Axios error
+ console.error(axiosError.response.data.message);
+ errorMsg = axiosError.response.data.message;
+ } else if (axiosError.request) {
+ // If error was caused by the request
+ console.error(axiosError.request);
+ } else {
+ // Other errors
+ console.error('Error', axiosError.message);
+ }
+ } else {
+ // No AxiosError
+ console.error('Error', err);
+ }
+ }
+ }
+})
+
+export { customers, customerObject, errorMsg };
\ No newline at end of file
diff --git a/server/middleware/login.ts b/server/middleware/login.ts
index 73c542e..c22395d 100644
--- a/server/middleware/login.ts
+++ b/server/middleware/login.ts
@@ -1,6 +1,5 @@
import axios, { AxiosError } from 'axios';
import serversideConfig from '../../serversideConfig';
-import fs from 'fs';
import https from 'https';
let loginSuccessful = false;
@@ -8,31 +7,22 @@ let errorMsg = '';
export default defineEventHandler(async (event) => {
loginSuccessful = false;
+ const agent = new https.Agent({
+ rejectUnauthorized: false,
+ });
+
+ const axiosInstance = axios.create({
+ headers: {
+ 'Content-Type': 'application/json',
+ Accept: "*",
+ },
+ httpsAgent: agent
+ });
if (event.path.startsWith("/api/login")) {
const body = await readBody(event)
- // read the certificate and create agent
- const caCert = fs.readFileSync('./certs/server_ca.pem');
- // const httpsAgent = new https.Agent({
- // keepAlive: true,
- // ca: caCert,
- // rejectUnauthorized: true,
- // });
-
- const agent = new https.Agent({
- rejectUnauthorized: false,
- });
-
- const axiosInstance = axios.create({
- headers: {
- 'Content-Type': 'application/json',
- Accept: "*",
- },
- httpsAgent: agent
- });
-
// get user object from backend
try {
let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/login`, {
diff --git a/server/middleware/signUp.ts b/server/middleware/signUp.ts
index 3ddef44..2ef5a2e 100644
--- a/server/middleware/signUp.ts
+++ b/server/middleware/signUp.ts
@@ -1,60 +1,28 @@
import axios, { AxiosError } from 'axios';
import serversideConfig from '../../serversideConfig';
-import fs from 'fs';
import https from 'https';
-let registeringSuccessful = false;
let errorMsg = '';
export default defineEventHandler(async (event) => {
- registeringSuccessful = false;
+ const agent = new https.Agent({
+ rejectUnauthorized: false,
+ });
+
+ const axiosInstance = axios.create({
+ headers: {
+ 'Content-Type': 'application/json',
+ Accept: "*",
+ },
+ httpsAgent: agent
+ });
if (event.path.startsWith("/api/signup")) {
-
const body = await readBody(event)
- // read the certificate and create agent
- const caCert = fs.readFileSync('./certs/server_ca.pem');
- // const httpsAgent = new https.Agent({
- // keepAlive: true,
- // ca: caCert,
- // rejectUnauthorized: true,
- // });
-
- const agent = new https.Agent({
- rejectUnauthorized: false,
- });
-
- const axiosInstance = axios.create({
- headers: {
- 'Content-Type': 'application/json',
- Accept: "*",
- },
- httpsAgent: agent
- });
-
// do the post request in the backend
try {
- let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/signup`, {
- username: body.username,
- password: body.password,
- password_repeat: body.password_repeat,
- lastLogin: body.lastLogin,
- fullName: body.fullName,
- email: body.email,
- phonenumber: body.phonenumber,
- address: body.address,
- city: body.city,
- postcode: body.postcode,
- adminBool: body.adminBool,
- technician1Bool: body.technician1Bool,
- technician2Bool: body.technician2Bool,
- technicianMonitoringBool: body.technicianMonitoringBool,
- merchantBool: body.merchantBool,
- internBool: body.internBool,
- });
- registeringSuccessful = true;
-
+ let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/signup`, body);
} catch (err) {
if (axios.isAxiosError(err)) {
const axiosError = err as AxiosError;
@@ -64,6 +32,7 @@ export default defineEventHandler(async (event) => {
console.error(axiosError.response.data.message);
errorMsg = axiosError.response.data.message;
} else if (axiosError.request) {
+ console.log(err)
// If error was caused by the request
console.error(axiosError.request);
} else {
@@ -78,6 +47,4 @@ export default defineEventHandler(async (event) => {
}
})
-export { registeringSuccessful, errorMsg };
-
-registeringSuccessful = false;
\ No newline at end of file
+export { errorMsg };
\ No newline at end of file