@ionaai/rtnapi
Version:
common api collection for RTN
82 lines (75 loc) • 2.77 kB
JavaScript
;
var _ = require("underscore");
var mongoose = require("mongoose");
var DBModel = require('@ionaai/rtndbmodel');
var Coupon = DBModel.coupon;
var User = DBModel.user;
var Job = DBModel.job;
var AppliedJobData = DBModel.appliedJobData;
var Service = DBModel.service;
var generateUUID = function () {
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random()*16)%16 | 0;
d = Math.floor(d/16);
return (c=='x' ? r : (r&0x3|0x8)).toString(16);
});
return uuid;
};
var generateCoupon = function () {
var d = new Date().getTime();
var uuid = 'xxxxxyxy'.replace(/[xy]/g, function(c) {
var r = (d + Math.random()*8)%16 | 0;
d = Math.floor(d/16);
return (c=='x' ? r : (r&0x3|0x8)).toString(16);
});
return uuid;
};
var createCustomService = function(services,job,finalCost, userId, next){
var pkgName = "";
_.each(services, function(i){
pkgName += i.name + "; ";
});
console.log("createCustomService > jobUrlSlug", job?job.urlSlug:'Unlimited');
var thisService = new Service({
"name": "Custom Prep Package for " + (job?job.name:' user'),
"description": "This package includes " + pkgName,
"logo": "https://s3.amazonaws.com/rtnlogosimages/combopack_1.jpg",
"urlSlug": generateUUID() ,
"actualPrice": finalCost,
"sellingPrice": finalCost,
"isActive": true,
"serviceType": "combo",
"subServices": services,
"sourceUrl" : job?job.urlSlug:'Unlimited'
});
thisService.save(function(err, finalService){
console.log("Pkg created: " + JSON.stringify(finalService));
next(err, finalService);
})
};
var createCustomToken= function(finalService,prepPkgBaseSellingCostCouponPercentage,userId, next){
var expDate = new Date("Dec 31, 2018");
var code = generateCoupon().toUpperCase();
var thisCoupon = new Coupon({
code : code,
title : code,
discountType : "percentage",
cashValue : 0,
percentageValue : prepPkgBaseSellingCostCouponPercentage,
expiration : expDate.toISOString(),
additionInfo : "Custom Coupon",
adminNotes : "Service - " + finalService.urlSlug,
applicableServices : [],
userId : userId,
creationDate : Date.now()
});
thisCoupon.applicableServices.push(finalService.urlSlug);
thisCoupon.save(function(err, finalCoupon){
next(err, finalCoupon);
})
};
module.exports = {
createCustomService : createCustomService,
createCustomToken : createCustomToken
}