Pārlūkot izejas kodu

Waiting on info from Square

Lee Morgan 6 gadi atpakaļ
vecāks
revīzija
59eb198c6d

+ 49 - 2
controllers/helper.js

@@ -1,5 +1,52 @@
+const axios = require("axios");
+
 module.exports = {
-    getSquareData: function(){
-        
+    getSquareData: function(merchant){
+        let now = new Date().toISOString();
+        now = `${now.substring(0, now.length - 1)}+00:00`;
+        let before = new Date(merchant.lastUpdatedTime).toISOString();
+        before = `${before.substring(0, before.length - 1)}+00:00`;
+
+        axios.post(`${process.env.SQUARE_ADDRESS}/v2/orders/search`, {
+            location_ids: [merchant.squareLocation],
+            query: {
+                filter: {
+                    date_time_filter: {
+                        closed_at: {
+                            start_at: before,
+                            end_at: now
+                        }
+                    },
+                    state_filter: {
+                        states: ["COMPLETED"]
+                    }
+                },
+                sort: {
+                    sort_field: "CLOSED_AT",
+                    sort_order: "DESC"
+                }
+            }
+        }, {
+            headers: {
+                Authorization: `Bearer ${merchant.posAccessToken}`
+            }
+        })
+            .then((response)=>{
+                if(response.data.orders){
+                    console.log(response.data.orders[0].line_items);
+                    for(let i = 0; i < response.data.orders.length; i++){
+                        for(let j = 0; j < merchant.recipes.length; j++){
+                            if(response.data.orders[i].name === merchant.recipes[j].name){
+                                
+                                break;
+                            }
+                        }
+                    }
+                }
+            })
+            .catch((err)=>{
+                console.log(err);
+                // console.log(err.response.data.errors);
+            });
     }
 }

+ 3 - 2
controllers/merchantData.js

@@ -142,6 +142,7 @@ module.exports = {
                     posAccessToken: req.session.accessToken,
                     lastUpdatedTime: new Date(),
                     createdAt: new Date(),
+                    squareLocation: response.data.merchant.main_location_id,
                     inventory: [],
                     recipes: []
                 });
@@ -159,11 +160,12 @@ module.exports = {
                 });
             })
             .then((response)=>{
+                console.log(response.data.objects);
                 let recipes = [];
                 
                 for(let i = 0; i < response.data.objects.length; i++){
                     let recipe = new Recipe({
-                        posId: response.data.objects[i].item_data.variations[0].item_variation_data.item_id,
+                        posId: response.data.objects[i].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,
@@ -185,7 +187,6 @@ module.exports = {
                 return res.redirect("/dashboard");
             })
             .catch((err)=>{
-                console.log(err);
                 banner.createError("ERROR: UNABLE TO CREATE NEW USER AT THIS TIME");
             });
     },

+ 1 - 12
controllers/otherData.js

@@ -144,15 +144,4 @@ module.exports = {
                 return res.redirect("/");
             });
     }
-} 
-
-/*
-{
-  access_token: 'EAAAEM5tPhVM2L2MkxzjgA2ATIeyDKFiZzzZEsvPwSB_YSRKyXVrTVZrg_qHNgXe',
-  token_type: 'bearer',
-  expires_at: '2020-08-29T09:39:11Z',
-  merchant_id: 'MLGGD4TQVAM4G',
-  refresh_token: 'EQAAEOGMweecHJhOnxYyQP95Pj3oP-9KaQP027Ad6RQTSAN3He5A55lN47dXHjV2'
-}
-
-*/
+}

+ 2 - 1
controllers/renderer.js

@@ -63,7 +63,8 @@ module.exports = {
                 posAccessToken: 1,
                 lastUpdatedTime: 1,
                 inventory: 1,
-                recipes: 1
+                recipes: 1,
+                squareLocation: 1
             }
         )
             .populate("inventory.ingredient")

+ 1 - 0
models/merchant.js

@@ -28,6 +28,7 @@ const MerchantSchema = new mongoose.Schema({
         status: String,
         expiration: Date,
     },
+    squareLocation: String,
     inventory: [{
         ingredient: {
             type: mongoose.Schema.Types.ObjectId,