|
@@ -75,152 +75,6 @@ module.exports = {
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- /*
|
|
|
|
|
- POST - Creates new Clover merchant
|
|
|
|
|
- Redirects to /dashboard
|
|
|
|
|
- */
|
|
|
|
|
- createMerchantClover: async function(req, res){
|
|
|
|
|
- let merchant = {}
|
|
|
|
|
- axios.get(`${process.env.CLOVER_ADDRESS}/v3/merchants/${req.session.merchantId}?access_token=${req.session.accessToken}`)
|
|
|
|
|
- .then((response)=>{
|
|
|
|
|
- merchant = new Merchant({
|
|
|
|
|
- name: response.data.name,
|
|
|
|
|
- pos: "clover",
|
|
|
|
|
- posId: req.session.merchantId,
|
|
|
|
|
- posAccessToken: req.session.accessToken,
|
|
|
|
|
- lastUpdatedTime: Date.now(),
|
|
|
|
|
- createdAt: Date.now(),
|
|
|
|
|
- inventory: [],
|
|
|
|
|
- recipes: []
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- return axios.get(`${process.env.CLOVER_ADDRESS}/v3/merchants/${req.session.merchantId}/items?access_token=${req.session.accessToken}`);
|
|
|
|
|
- })
|
|
|
|
|
- .then((response)=>{
|
|
|
|
|
- let recipes = [];
|
|
|
|
|
- for(let i = 0; i < response.data.elements.length; i++){
|
|
|
|
|
- let recipe = new Recipe({
|
|
|
|
|
- posId: response.data.elements[i].id,
|
|
|
|
|
- merchant: merchant,
|
|
|
|
|
- name: response.data.elements[i].name,
|
|
|
|
|
- price: response.data.elements[i].price,
|
|
|
|
|
- ingredients: []
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- recipes.push(recipe);
|
|
|
|
|
- merchant.recipes.push(recipe);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Recipe.create(recipes).catch((err)=>{});
|
|
|
|
|
-
|
|
|
|
|
- return merchant.save();
|
|
|
|
|
- })
|
|
|
|
|
- .then((newMerchant)=>{
|
|
|
|
|
- req.session.accessToken = undefined;
|
|
|
|
|
- req.session.user = newMerchant._id;
|
|
|
|
|
-
|
|
|
|
|
- return res.redirect("/dashboard");
|
|
|
|
|
- })
|
|
|
|
|
- .catch((err)=>{
|
|
|
|
|
- if(typeof(err) === "string"){
|
|
|
|
|
- req.session.error = err;
|
|
|
|
|
- }else if(err.name === "ValidationError"){
|
|
|
|
|
- req.session.error = err.errors[Object.keys(err.errors)[0]].properties.message;
|
|
|
|
|
- }else{
|
|
|
|
|
- req.session.error = "ERROR: UNABLE TO RETRIEVE DATA FROM CLOVER";
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return res.redirect("/");
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- createMerchantSquare: function(req, res){
|
|
|
|
|
- let merchant = {}
|
|
|
|
|
-
|
|
|
|
|
- axios.get(`${process.env.SQUARE_ADDRESS}/v2/merchants/${req.session.merchantId}`, {
|
|
|
|
|
- headers: {
|
|
|
|
|
- Authorization: `Bearer ${req.session.accessToken}`
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
- .then((response)=>{
|
|
|
|
|
- req.session.merchantId = undefined;
|
|
|
|
|
-
|
|
|
|
|
- return new Merchant({
|
|
|
|
|
- name: response.data.merchant.business_name,
|
|
|
|
|
- pos: "square",
|
|
|
|
|
- posId: response.data.merchant.id,
|
|
|
|
|
- posAccessToken: req.session.accessToken,
|
|
|
|
|
- lastUpdatedTime: new Date(),
|
|
|
|
|
- createdAt: new Date(),
|
|
|
|
|
- squareLocation: response.data.merchant.main_location_id,
|
|
|
|
|
- inventory: [],
|
|
|
|
|
- recipes: []
|
|
|
|
|
- });
|
|
|
|
|
- })
|
|
|
|
|
- .then((newMerchant)=>{
|
|
|
|
|
- req.session.accessToken = undefined;
|
|
|
|
|
- merchant = newMerchant;
|
|
|
|
|
-
|
|
|
|
|
- return axios.post(`${process.env.SQUARE_ADDRESS}/v2/catalog/search`, {
|
|
|
|
|
- object_types: ["ITEM"]
|
|
|
|
|
- }, {
|
|
|
|
|
- headers: {
|
|
|
|
|
- Authorization: `Bearer ${merchant.posAccessToken}`
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- })
|
|
|
|
|
- .then((response)=>{
|
|
|
|
|
- let recipes = [];
|
|
|
|
|
-
|
|
|
|
|
- for(let i = 0; i < response.data.objects.length; i++){
|
|
|
|
|
- if(response.data.objects[i].item_data.variations.length > 1){
|
|
|
|
|
- for(let j = 0; j < response.data.objects[i].item_data.variations.length; j++){
|
|
|
|
|
- let recipe = new Recipe({
|
|
|
|
|
- posId: response.data.objects[i].item_data.variations[j].id,
|
|
|
|
|
- merchant: merchant._id,
|
|
|
|
|
- name: `${response.data.objects[i].item_data.name} '${response.data.objects[i].item_data.variations[j].item_variation_data.name}'`,
|
|
|
|
|
- price: response.data.objects[i].item_data.variations[j].item_variation_data.price_money.amount
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- recipes.push(recipe);
|
|
|
|
|
- merchant.recipes.push(recipe);
|
|
|
|
|
- }
|
|
|
|
|
- }else{
|
|
|
|
|
- let recipe = new Recipe({
|
|
|
|
|
- posId: response.data.objects[i].item_data.variations[0].id,
|
|
|
|
|
- merchant: merchant._id,
|
|
|
|
|
- name: response.data.objects[i].item_data.name,
|
|
|
|
|
- price: response.data.objects[i].item_data.variations[0].item_variation_data.price_money.amount,
|
|
|
|
|
- ingredients: []
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- recipes.push(recipe);
|
|
|
|
|
- merchant.recipes.push(recipe);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return Recipe.create(recipes);
|
|
|
|
|
- })
|
|
|
|
|
- .then((recipes)=>{
|
|
|
|
|
- return merchant.save();
|
|
|
|
|
- })
|
|
|
|
|
- .then((merchant)=>{
|
|
|
|
|
- req.session.user = merchant._id;
|
|
|
|
|
-
|
|
|
|
|
- return res.redirect("/dashboard");
|
|
|
|
|
- })
|
|
|
|
|
- .catch((err)=>{
|
|
|
|
|
- if(typeof(err) === "string"){
|
|
|
|
|
- req.session.error = err;
|
|
|
|
|
- }else if(err.name === "ValidationError"){
|
|
|
|
|
- req.session.error = err.errors[Object.keys(err.errors)[0]].properties.message;
|
|
|
|
|
- }else{
|
|
|
|
|
- req.session.error = "ERROR: UNABLE TO CREATE NEW USER";
|
|
|
|
|
- }
|
|
|
|
|
- return res.redirect("/");
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
/*
|
|
/*
|
|
|
POST - Update the quantity for a merchant inventory item
|
|
POST - Update the quantity for a merchant inventory item
|
|
|
req.body = [{
|
|
req.body = [{
|