Ver Fonte

Cloverers can now create an account. They still cannot log in.

Lee Morgan há 6 anos atrás
pai
commit
220f74e540

+ 36 - 0
controllers/merchantData.js

@@ -51,6 +51,42 @@ module.exports = {
         }
     },
 
+    //POST - Creates a Clover merchant from all entered data
+    //Inputs:
+    //  req.body.data: All data from frontend in form of merchant model
+    //Redirect to "/inventory"
+    createMerchantClover: async function(req, res){
+        axios.get(`https://apisandbox.dev.clover.com/v3/merchants/${req.session.merchantId}?access_token=${req.session.accessToken}`)
+            .then((response)=>{
+                let merchant = new Merchant({
+                    name: response.data.name,
+                    pos: "clover",
+                    posAccessToken: req.session.accessToken,
+                    lastUpdatedTime: Date.now(),
+                    createdAt: Date.now(),
+                    inventory: [],
+                    recipes: []
+                });
+
+                merchant.save()
+                    .then((newMerchant)=>{
+                        req.session.user = newMerchant._id;
+                        
+                        return res.redirect("/inventory");
+                    })
+                    .catch((err)=>{
+                        req.session.error = "Error: unable to save data from Clover";
+
+                        return res.redirect("/");
+                    });
+            })
+            .catch((err)=>{
+                req.session.error = "Error: Unable to retrieve data from Clover";
+
+                return res.redirect("/");
+            });
+    },
+
     //GET - Checks clover for new or deleted recipes
     //Returns: 
     //  merchant: Full merchant (recipe ingredients populated)

+ 1 - 1
controllers/otherData.js

@@ -176,7 +176,7 @@ module.exports = {
         axios.get(`${process.env.CLOVER_ADDRESS}/oauth/token?client_id=${process.env.SUBLINE_CLOVER_APPID}&client_secret=${process.env.SUBLINE_CLOVER_APPSECRET}&code=${authorizationCode}`)
             .then((response)=>{
                 req.session.accessToken = response.data.access_token;
-                return res.redirect("/merchant/new/clover");
+                return res.redirect("/merchant/create/clover");
             })
             .catch((err)=>{
                 req.session.error = "Error: Unable to retrieve data from Clover";

+ 1 - 5
models/merchant.js

@@ -5,13 +5,9 @@ const MerchantSchema = new mongoose.Schema({
         type: String,
         required: true
     },
-    email: {
-        type: String,
-        required: true
-    },
+    email: String,
     password: {
         type: String,
-        required: true,
         minlength: [15, "Password must contain at least 15 characters"]
     },
     pos: {

+ 3 - 2
routes.js

@@ -8,14 +8,15 @@ module.exports = function(app){
     //Render page
     app.get("/", renderer.landingPage);
     app.get("/inventory", renderer.displayInventory);
-    app.get("/merchant/new/clover", renderer.merchantSetupClover);
-    app.get("/merchant/new/none", renderer.merchantSetupNone);
+    // app.get("/merchant/new/clover", renderer.merchantSetupClover);
+    // app.get("/merchant/new/none", renderer.merchantSetupNone);
     app.get("/recipes", renderer.displayRecipes);
     app.get("/information", renderer.displayLegal);
     app.get("/data", renderer.displayData);
 
     //Merchant
     app.post("/merchant/create/none", merchantData.createMerchantNone);
+    app.get("/merchant/create/clover", merchantData.createMerchantClover);
     app.get("/merchant/recipes/update", merchantData.updateRecipes);
     app.post("/merchant/ingredients/create", merchantData.addMerchantIngredient);
     app.post("/merchant/ingredients/remove", merchantData.removeMerchantIngredient);

+ 3 - 3
views/landingPage/landing.ejs

@@ -87,12 +87,12 @@
                     <input name="confirmPassword" type="password">
                 </label>
 
-                <input type="submit" value="Register">
+                <input class="button" type="submit" value="Register">
             </form>
 
-            <button onclick="registerObj.submitClover()">Register with Clover</button>
+            <a class="button" href="/cloverlogin">Register with Clover</a>
 
-            <button onclick="registerObj.cancel">Cancel</button>
+            <button class="button" onclick="publicObj.display()">Cancel</button>
         </div>
         
 

+ 0 - 33
views/landingPage/register.js

@@ -3,37 +3,4 @@ let registerObj = {
         controller.clearScreen();
         controller.registerStrand.style.display = "flex";
     },
-
-    cancel: function(){
-        event.preventDefault();
-
-        publicObj.display();
-    },
-
-    submitNone: function(){
-        event.preventDefault();
-
-        let name = document.querySelector("#regName").value;
-        let email = document.querySelector("#regEmail").value;
-        let pass = document.querySelector("#regPass").value;
-        let confirmPass = document.querySelector("#regConfirmPass").value;
-
-        let data = {
-            name: name,
-            email: email,
-            password: pass,
-            confirmPassword: confirmPass
-        }
-
-        if(validator.merchant.password(pass, confirmPass) && validator.isSanitary(name)){
-            document.querySelector("#regsiterStrand form").submit();
-        }
-
-        // if(validator.merchant.password(pass, confirmPass) && validator.isSanitary(name)){
-        //     axios.post("/merchant/create/none", data)
-        //         .catch((err)=>{
-        //             banner.createError("Error: Unable to create account at the moment");
-        //         });
-        // }
-    }
 }