| Current Path : /var/node/inatote/Inatote-Backend/vendor_panel/ |
| Current File : /var/node/inatote/Inatote-Backend/vendor_panel/vendor-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 makeCategoryList from "../categories/category-list.js";
import makeorderList from "../orders/order-list.js";
// import makeCategoryList from "..";
export default function makeVendorsEndpointHandler({ database }) {
return async function handle(httpRequest) {
switch (httpRequest.method) {
case 'GET':
return page(httpRequest)
default:
return makeWebError({
statusCode: 404,
page: "Method not allowed"
})
}
}
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 formatDate(date){
//console.log("date-----------" , date , typeof date);
return new Date(parseInt(date)).toLocaleDateString()
}
async function page(httpRequest) {
var user = httpRequest.user;
var image_url = "https://qa.inatote.com/";
var apiUrl = 'https://qa.inatote.com';
//console.log("userssss" , user);
if(httpRequest.path != "/web/vendor/validateotp"){
try {
try {
if (user.userType != "Vendor")
throw new AuthorizationTokenError("Access not granted");
} catch (e) {
throw new AuthorizationTokenError("Access not granted");
}
} catch (e) {
console.log("e" , e);
return makeWebError({
statusCode: 404,
page: "vendorLogin",
})
}
}
var userList = makeUserList({ database })
//console.log("path" , httpRequest.pathParams);
switch (httpRequest.path) {
case '/web/vendor/adduser':
var usr = await userList.findById({ userId: user.userId })
return {
page: 'vendor/users/add-user',
data: {
user: usr,
image_url
}
}
case '/web/vendor/validateotp':
console.log("USR");
return {
page: 'vendor/validateotp',
data: {}
// user: usr,
// image_url
// }
}
case '/web/vendor/listuser':
// this will be a filtered list for specific vendor
console.log('users' , user);
var user = await userList.findById({ userId: user.userId })
var users = await userList.getItems({ companyId: user.companyId })
return {
page: 'vendor/users/user-list',
data: {
users: users,
image_url,
showBlock : (isEnabled)=>{
//console.log("isEnabled" , isEnabled);
let res = "Block";
if(isEnabled == "false" || isEnabled == false){
res = "Unblock"
}
return res
},
}
}
case '/web/vendor/edituser':
// this will be a filtered list for specific vendor
var user = await userList.findById({ userId: user.userId })
console.log('edituser' , user);
// var users = await userList.getItems({ companyId: user.companyId })
return {
page: 'vendor/users/edit-user',
data: {
user: user,
image_url,
showBlock : (isEnabled)=>{
//console.log("isEnabled" , isEnabled);
let res = "Block";
if(isEnabled == "false" || isEnabled == false){
res = "Unblock"
}
return res
},
}
}
case '/web/vendor/viewvendor':
var vendorList = makevendorList({ database })
var user = await userList.findById({ userId: user.userId })
let vendor = await vendorList.findById({vendorId : user.companyId})
console.log('edituser' , vendor);
return {
page: 'vendor/users/vendor-details',
data: {
vendor: vendor,
apiUrl,
image_url,
}
}
case '/web/vendor/viewuser':
// this will be a filtered list for specific vendor
let id = httpRequest.queryParams.id;
var user = await userList.findById({ userId: id })
return {
page: 'vendor/users/view-user',
data: {
user: user,
image_url
}
}
case '/web/vendor/changepassword':
// this will be a filtered list for specific vendor
// var user = await userList.findById({ userId: user.userId })
return {
page: 'vendor/users/change-password',
data: {
fn: `function updatePassword(){
alert("nice")
}`
}
}
case '/web/vendor/addproduct':
var usr = await userList.findById({ userId: user.userId })
var categoryList = makeCategoryList({ database })
//console.log('user.companyId' , user.companyId);
var categories = await categoryList.getItems({ vendorID: usr.companyId })
//console.log("category",categories );
return {
page: 'vendor/products/add-product',
data: {
user: usr,
categories : categories,
image_url
}
}
case '/web/vendor/updateproduct':
try{
//console.log("params" , httpRequest.queryParams)
// let db = await database;
// var usr = await userList.findById({ userId: user.userId })
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: 'vendor/products/edit-product',
data: {
// user: usr,
categories : categories,
product,
category,
image_url,
showStatus : (status)=>{
//console.log("status" , status);
let res = "Available";
if(status == "Available" ){
res = "Disable"
}
return res
},
}
}
}
catch(e){
//console.log("e" , e);
}
case '/web/vendor/listproduct':
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("p" , products , user);
return {
page: 'vendor/products/list-product',
data: {
products: products.reverse(),
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
},
}
}
case '/web/vendor/addcategory':
var usr = await userList.findById({ userId: user.userId })
//console.log("usr" , usr);
return {
page: 'vendor/categories/add-category',
data: {
user: usr,
image_url
}
}
case '/web/vendor/listcategory':
var user = await userList.findById({ userId: user.userId })
var categoryList =await makeCategoryList({ database })
//console.log("category",user.companyId );
var categories = await categoryList.getItems({ vendorID: user.companyId })
//console.log("category",categories );
return {
page: 'vendor/categories/list-category',
data: {
products: categories.length > 0 ? categories :[],
image_url
}
}
case '/web/vendor/updatecategory':
try{
var categoryList = makeCategoryList({ database })
let category = await categoryList.findById({categoryId : httpRequest.queryParams.id });
return {
page: 'vendor/categories/edit-category',
data: {
category: category,
image_url,
}
}
}
catch(err){
//console.log("err" , err);
}
break;
case '/web/vendor/listorder':
//console.log("liust orser", user.userId);
var orderList = makeorderList({ database })
var orders = await orderList.getOrderByVendor(user.userId)
//console.log("orders" , orders);
return {
page: 'vendor/orders/list-order',
data: {
orders : orders,
capitalize : capitalize,
formatDate : formatDate,
image_url
}
}
case '/web/vendor/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 });
}
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: 'vendor/orders/view-order',
data: {
order : order,
capitalize : capitalize,
formatDate : formatDate,
findProduct : findProduct
}
}
default:
// var usr = await userList.getItems({ companyId: })
return {
page: 'vendor/index',
data: image_url
}
}
}
}