added login and sign Funtion properly
This commit is contained in:
@ -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!'
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -9,8 +9,14 @@
|
||||
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">Client:</pre>
|
||||
<pre v-if="!editable"
|
||||
:class="['data', darkMode ? 'data-darkmode' : 'data-lightmode']"> {{ item.customer }}</pre>
|
||||
<input v-if="editable" v-model="item.customer" @change="updateConfigItem()"
|
||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||
<!-- <input v-if="editable" v-model="item.customer" @change="updateCustomerID()"
|
||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> -->
|
||||
<select v-if="editable" id="customersDropDownChosenCI" v-model="item.customer"
|
||||
@change="updateCustomerID()" :class="[darkMode ? 'select-darkmode' : 'select-lightmode']">
|
||||
<option v-for="cust in customers" :key="cust.primaryID">
|
||||
{{ cust.customername }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="data-field" id="location">
|
||||
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">Location:</pre>
|
||||
@ -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();
|
||||
});
|
||||
|
||||
</script>
|
||||
@ -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;
|
||||
}
|
||||
</style>
|
||||
|
||||
22
server/api/getAllCustomers.ts
Normal file
22
server/api/getAllCustomers.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { customers, errorMsg } from "../middleware/customers";
|
||||
import { OutgoingMessage } from 'http';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
|
||||
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[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
|
||||
})
|
||||
22
server/api/getCustomerByName/[id].ts
Normal file
22
server/api/getCustomerByName/[id].ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { customerObject, errorMsg } from "../../middleware/customers";
|
||||
import { OutgoingMessage } from 'http';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
|
||||
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[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
|
||||
})
|
||||
@ -3,14 +3,6 @@ import { OutgoingMessage } from 'http';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
|
||||
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[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,
|
||||
|
||||
@ -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<string, Parameters<OutgoingMessage['setHeader']>[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,
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import { errorMsg } from "../middleware/configItems";
|
||||
import { OutgoingMessage } from 'http';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
|
||||
|
||||
84
server/middleware/customers.ts
Normal file
84
server/middleware/customers.ts
Normal file
@ -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 };
|
||||
@ -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`, {
|
||||
|
||||
@ -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;
|
||||
export { errorMsg };
|
||||
Reference in New Issue
Block a user