web/controllers/controllers.js
2022-04-07 12:19:11 +07:00

185 lines
No EOL
4.2 KiB
JavaScript

const axios = require("axios");
let config;
try {
config = require("../config");
} catch (e) {
console.log("No config file found");
process.exit(0);
}
const HOST = config.url + "/api";
function getProducts() {
return axios
.get(HOST + "/getproducts")
.then((response) => response.data)
.catch((error) => console.log(error));
}
function getProduct(id) {
return axios
.get(HOST + "/getproduct", {
params: {
id: id
}
})
.then((response) => response.data)
.catch((error) => console.log(error));
}
function register(email, password, first_name, last_name) {
let params = new URLSearchParams({
email: email,
password: password,
first_name: first_name,
last_name: last_name,
});
const conf = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
};
return axios
.post(HOST + "/register", params, conf)
.then((response) => response.status)
.catch((error) => [error.status, []]);
}
function login(email, password, ua, ip) {
let params = new URLSearchParams({
email: email,
password: password,
ua: ua,
ip: ip,
});
const conf = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
};
return axios
.post(HOST + "/login", params, conf)
.then((response) => [response.status, response.data])
.catch((error) => [error.status, []]);
}
function verify_mail(token) {
let params = new URLSearchParams({
token: token,
});
const conf = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
};
return axios
.post(HOST + "/verify-mail", params, conf)
.then((response) => [response.status, response.data])
.catch((error) => [error.status, []]);
}
function request_reset_password(email) {
let params = new URLSearchParams({
email: email,
});
const conf = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
}
};
return axios
.post(HOST + "/request-reset-password", params, conf)
.then((response) => [response.status, response.data])
.catch((error) => [error.status, []]);
}
function reset_password(
token,
password
) {
let params = new URLSearchParams({
password: password,
});
const conf = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
params: {
token: token,
}
};
return axios
.post(HOST + "/reset-password", params, conf)
.then((response) => [response.status, response.data])
.catch((error) => [error.status, []]);
}
function checkout(
firstName,
lastName,
phoneNumber,
streetAddress1,
streetAddress2,
region,
province,
city,
district,
subDistrict,
postalCode,
logistic,
data,
key
) {
let params = new URLSearchParams({
firstName: firstName,
lastName: lastName,
phoneNumber: phoneNumber,
streetAddress1: streetAddress1,
streetAddress2: streetAddress2,
region: region,
province: province,
city: city,
district: district,
subDistrict: subDistrict,
postalCode: postalCode,
logistic: logistic,
data: data,
});
const conf = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
params: {
key: key,
}
};
return axios
.post(HOST + "/checkout", params, conf)
.then((response) => [response.status, response.data])
.catch((error) => [error.status, []]);
}
function transaction(key) {
const conf = {
params: {
key: key,
}
};
return axios
.post(HOST + "/transaction", null, conf)
.then((response) => [response.status, response.data])
.catch((error) => [error.status, []]);
}
module.exports = {
getProducts,
getProduct,
register,
login,
verify_mail,
request_reset_password,
reset_password,
checkout,
transaction
};