| Current Path : /var/node/inatote/Inatote-Backend/adminpanel/ |
| Current File : //var/node/inatote/Inatote-Backend/adminpanel/admin-endpoint.js |
import makeWebError from "../helpers/web-error.js"
import validatePageHash from "../helpers/validate-page-hash.js";
import { AuthorizationTokenError } from "../helpers/errors.js";
import makeUserList from '../users/user-list.js'
import makevendorList from "../vendors/vendor-list.js";
import makeProductList from '../products/product-list.js';
import makeaddressList from '../address/address-list.js';
import makeproductList from "../products/product-list.js";
import makeCategoryList from "../categories/category-list.js";
import makeConfigurationList from "../configurations/configuration-list.js"
import makeorderList from "../orders/order-list.js";
export default function makeAdminsEndpointHandler({ database }) {
return async function handle(httpRequest) {
switch (httpRequest.method) {
case 'GET':
return page(httpRequest)
default:
return makeWebError({
statusCode: 404,
page: "Method not allowed"
})
}
}
async function page(httpRequest) {
var apiUrl = 'http://qa.inatote.com:9090/';
var imagePath = 'http://qa.inatote.com/';
var user = httpRequest.user
//console.log("body", user);
try {
if (user.userType != "Admin")
throw AuthorizationTokenError("Access not granted");
} catch (e) {
//console.log("e", e);
return makeWebError({
statusCode: 404,
page: "adminLogin",
})
}
// var queryInfo = httpRequest.queryParams;
// try {
// if (!queryInfo) {
// throw AuthorizationTokenError("Access not granted");
// } else if (!queryInfo.pageHash) {
// throw AuthorizationTokenError("Access not granted");
// } else {
// try {
// // var user = validatePageHash(queryInfo.pageHash)
// var user = httpRequest.user;
// if (user.userType != "Admin")
// throw AuthorizationTokenError("Access not granted");
// } catch (e) {
// throw AuthorizationTokenError("Access not granted");
// }
// }
// } catch (e) {
// return makeWebError({
// statusCode: 404,
// page: "adminLogin",
// })
// }
function formatDate(date){
//console.log("date-----------" , date , typeof date);
return new Date(date).toLocaleDateString()
}
function capitalize(string){
let strings = string.split(" ");
//console.log("strings" , strings);
let updatesString = ""
strings.forEach(s=>{
updatesString = `${updatesString} ${s[0].toUpperCase()}${s.slice(1)}`
})
return updatesString
}
function showImage(image , document){
//console.log("image" , image);
if(image.length > 0 ){
// document.body.appendChild(a);
// document.getElementById(id).innerHTML = <a href={`http://dev.inatote.com/${image}`}>View Image </a>
// return <a href={`http://dev.inatote.com/${image}`}>View Image </a>
return '<a href={`http://dev.inatote.com/${image}`}>View Image </a>'
}else{
return "No Image Found"
}
}
//console.log(httpRequest.path)
switch (httpRequest.path) {
case '/web/admin/adduser':
var vendorList = makevendorList({ database })
var vendors = await vendorList.getItems({})
//console.log("vendors", vendors);
debugger
return {
page: 'admin/users/add-user',
data: {
vendors: vendors
,apiUrl
,imagePath
}
}
case `/web/admin/listuser`:
//console.log("-------------------");
var userList = makeUserList({ database })
//console.log("------queryParams-----------", httpRequest.queryParams);
var users = await userList.getItems(httpRequest.queryParams)
// //console.log("users", users);
return {
page: 'admin/users/user-list',
data: {
users: users && users.length > 0 && users.reverse() ,
userType: httpRequest.queryParams.userType,
showImage : showImage
,apiUrl
,imagePath
}
}
case `/web/admin/KYCStatus`:
var userList = makeUserList({ database })
//console.log("------queryParams-----------", httpRequest.queryParams);
let query = Object.keys(httpRequest.queryParams).length > 0 ? httpRequest.queryParams : {userType : "Rider"}
//console.log("query" ,query);
var users = await userList.getItems(query)
return {
page: 'admin/KYC-status',
data: {
users: users,
KYCStatus: httpRequest.queryParams.KYCStatus
,apiUrl
,imagePath
}
}
case `/web/admin/viewuser`:
var userList = makeUserList({ database });
var addressList = makeaddressList({ database}) ;
console.log("------queryParams-----------", httpRequest.queryParams);
var user = await userList.findByIdwithVendor({ userId : httpRequest.queryParams.id });
let address = await addressList.getItems({_id : httpRequest.queryParams.id })
console.log("users", user , address);
return {
page: 'admin/users/view-user',
data: {
user: user,
formatDate : formatDate,
address : address
,apiUrl
,imagePath
}
}
case `/web/admin/viewrider`:
var userList = makeUserList({ database });
var addressList = makeaddressList({ database}) ;
//console.log("------queryParams-----------", httpRequest.queryParams);
var user = await userList.findByIdwithVendor({ userId : httpRequest.queryParams.id });
let Address = await addressList.getItems({_id : httpRequest.queryParams.id })
//console.log("users", user );
return {
page: 'admin/users/view-rider',
data: {
user: user,
formatDate : formatDate,
address : Address
,apiUrl
,imagePath
}
}
case `/web/admin/cardDetails`:
var userList = makeUserList({ database });
var addressList = makeaddressList({ database}) ;
console.log("------queryParams-----------", httpRequest.queryParams);
var user = await userList.findByIdwithVendor({ userId : httpRequest.queryParams.id });
let address1 = await addressList.getItems({_id : httpRequest.queryParams.id })
console.log("users", user , address1);
return {
page: 'admin/users/user-create-card',
data: {
user: user,
formatDate : formatDate,
address : address1
,apiUrl
,imagePath
}
}
case '/web/admin/listvendor':
var vendorList = makevendorList({ database })
var vendors = await vendorList.getItems({})
return {
page: 'admin/vendors/vendor-list',
data: {
vendors: vendors.reverse()
,apiUrl
,imagePath
}
}
case '/web/admin/viewvendor':
let id = httpRequest.queryParams.id;
var vendorList = makevendorList({ database })
var vendor = await vendorList.findById({vendorId : id});
return {
page: 'admin/vendors/view-vendor',
data: {
vendor: vendor
,apiUrl
,imagePath
}
}
case '/web/admin/addvendor':
return {
page: 'admin/vendors/add-vendor',
data: {
username: "Admin "
}
}
case '/web/admin/updatevendor':
return {
page: 'admin/vendors/update-vendor',
data: {
username: "Admin Mateen"
}
}
case '/web/admin/products':
var productList = makeProductList({ database })
var products = await productList.getItems({})
//console.log("products", products)
return {
page: 'admin/others/product-list',
data: {
products: products
,apiUrl
,imagePath
}
}
case '/web/admin/orders':
var productList = makeProductList({ database })
//console.log(productList)
var products = await productList.getItems({})
return {
page: 'admin/others/product-list',
data: {
products: products
,apiUrl
,imagePath
}
}
case '/web/admin/updateproduct':
var userList = makeUserList({ database });
try{
//console.log("params" , httpRequest.queryParams)
var categoryList = makeCategoryList({ database })
var productList = makeproductList({ database })
const product =await productList.findById({productId :httpRequest.queryParams.id})
var category = await categoryList.findById({categoryId : product.categoryId });
var categories = await categoryList.getItems();
//console.log("paramsssssssssssssssssssssss" , categories);
return {
page: 'admin/products/edit-product',
data: {
// user: usr,
categories : categories,
product,
category
,apiUrl
,imagePath
}
}
}
catch(e){
//console.log("e" , e);
}
case '/web/admin/listproduct':
var userList = makeUserList({ database });
var user = await userList.findById({ userId: user.userId })
var productList = makeproductList({ database })
var products = await productList.getItems({ _id: user.companyId , search_by : "vendor" })
//console.log("product agae" , products );
return {
page: 'admin/products/list-product',
data: {
products: products,
showStock : (stock)=>{
let res = "InStock";
if(stock == "false" || stock == false){
res = "Out of Stock"
}
return res
},
showBlock : (isEnabled)=>{
//console.log("isEnabled" , isEnabled);
let res = "Block";
if(isEnabled == "false" || isEnabled == false){
res = "Unblock"
}
return res
}
,apiUrl
,imagePath
}
}
case '/web/admin/listorder':
//console.log("liust orser", user.userId);
var orderList = makeorderList({ database })
var orders = await orderList.getItems()
//console.log("orderssssssssss" , orders);
return {
page: 'admin/orders/list-order',
data: {
orders : orders,
capitalize : capitalize,
formatDate : formatDate
,apiUrl
,imagePath
}
}
case '/web/admin/vieworder':
//console.log("list order", user.userId);
var orderList = makeorderList({ database })
//console.log("list order", user.userId );
try{
var order = await orderList.findById({orderId :httpRequest.queryParams.id });
console.log("ORDER" , o);
}
catch(err){
//console.log("errrrr" , err);
}
let findProduct = (id , name)=>{
//console.log("id" , id);
if(order && order.productDetailsList){
let prod = order.productDetailsList;
let output = prod.filter(f=> f.productId == id);
//console.log("output" , output);
return output[0][name];
}
}
//console.log("orderssssssssss" , order);
return {
page: 'admin/orders/view-order',
data: {
order : order,
capitalize : capitalize,
formatDate : formatDate,
findProduct : findProduct
,apiUrl
,imagePath
}
}
case '/web/admin/configurations':
var confList = makeConfigurationList({ database })
try{
var conf = await confList.getItems();
let dc = Object.keys(conf[0].deliveryCharges).sort(function(a, b){return a - b});
let base = conf[0].forDriver["base"];
let km = conf[0].forDriver["km"];
let item = conf[0].forDriver["item"];
let dCharges = dc.map(i=>{
return {
name : i,
value : conf[0]["deliveryCharges"][i]
}
})
return {
page: 'admin/others/configurations',
data: {
conf : conf && conf.length > 0? conf[0] : null ,
capitalize : capitalize,
formatDate : formatDate,
deliveryCharges : dCharges,
base : base ,
km : km ,
item : item,
apiUrl
,imagePath
}
}
}
catch(err){
//console.log("errrrr" , err);
}
default:
return {
page: 'admin/index',
data: {
username: "Admin Mateen"
}
}
}
}
}