UNPKG

@ionaai/rtnapi

Version:

common api collection for RTN

82 lines (75 loc) 2.77 kB
'use strict'; 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 }