cezenGIT/MySQL_conf_pbx/test1/reactcezenpbx/src/http_routs/userHttp.js
2025-06-10 16:32:22 +05:30

105 lines
2.8 KiB
JavaScript
Executable File

import socket from "./httpDomainName";
import { createEndpointHttpEeq } from "./phone_operations_http";
/**
* this is used to send the data collected from
* the signup form to the backend
* in turn it creates the user
* returns a return status with true if created
* false if there was an error if any kind
*/
export async function createUserNewAdmin(signUpObject = {}) {
// returns a promise we use await to get the response body using JSON()
const response = await fetch(`${socket}/open/signup`, {
method: "POST",
body: JSON.stringify(signUpObject),
headers: {
"content-type": "application/json",
},
});
const resData = await response.json();
// console.log("response data");
// console.log(resData);
return resData;
}
/**
* this function is used to log-in
* it uses the basic auth log-in technique
* if successful a JWT token will be returned from the backend
* use the JWT token for every subsequent request
*/
//user login data
// export async function userLogin(username, password) {
// //make an http get request for userLogin login
// const loginResp = await fetch(`${socket}/open/login`, {
// method: `GET`,
// headers: basicAuthCredentialsBuilder(username, password),
// credentials: "include", // <-- VERY IMPORTANT to get the JWT cookie from the backend
// });
// const resData = await loginResp.json();
// console.log("response data");
// console.log(resData);
// return loginResp;
// }
// //common basic auth header builder
// function basicAuthCredentialsBuilder(username, password) {
// //builds the appropriate format for basic auth
// return {
// Authorization: "Basic " + window.btoa(username + ":" + password),
// };
// }
export async function userLoginAndResp(username, password) {
//make an http get request for userLogin login
const auth = new authenticationBuilder(socket);
return auth.userLogin(username, password);
}
/**
* This class helps the user login
*/
class authenticationBuilder {
#socketURL = "";
constructor(socketURL) {
this.#socketURL = socketURL;
}
async userLogin(username, password) {
//make an http get request for userLogin login
const loginResp = await fetch(`${this.#socketURL}/open/login`, {
method: `GET`,
headers: this.#basicAuthCredentialsBuilder(username, password),
credentials: "include", // <-- VERY IMPORTANT to get the JWT cookie from the backend
});
//createEndpointHttpEeq();
const resData = await loginResp.json();
console.log("response data");
console.log(resData);
return loginResp;
}
#basicAuthCredentialsBuilder(username, password) {
//builds the appropriate format for basic auth
return {
Authorization: "Basic " + window.btoa(username + ":" + password),
};
}
}