Browse Source

[ADD] promise based data fetching

Gogs 7 years ago
parent
commit
36185a3f3f

+ 10 - 4
src/store/actions.js

@@ -1,9 +1,15 @@
 const actions = {
     fetchData({ dispatch }) {
-        dispatch('fetchCompany')
-        dispatch('fetchCurrencies')
-        dispatch('fetchProducts')
-        dispatch('fetchCustomers')
+        let promises = [
+            dispatch('fetchCompany'),
+            dispatch('fetchCurrencies'),
+            dispatch('fetchProducts'),
+            dispatch('fetchCustomers')
+        ]
+
+        Promise.all(promises).then(() => {
+            console.log('ok')
+        })
     }
 }
 

+ 12 - 6
src/store/modules/company.js

@@ -19,13 +19,19 @@ const mutations = {
 
 const actions = {
     fetchCompany({ commit }) {
-        let pos = new openerp.web.Model('eiru.pos')
-        pos.call('get_company').then(response => {
-            commit('setCompany', {
-                company: response
+        return new Promise((resolve, reject) => {
+            let pos = new openerp.web.Model('eiru.pos')
+            pos.call('get_company').then(response => {
+                commit('setCompany', {
+                    company: response
+                })
+
+                console.log('fetched company')
+                resolve()
+            }).fail(error => {
+                console.log(error)
+                reject(error)
             })
-        }).fail(error => {
-            console.log(error)
         })
     }
 }

+ 12 - 6
src/store/modules/currencies.js

@@ -19,13 +19,19 @@ const mutations = {
 
 const actions = {
     fetchCurrencies({ commit }) {
-        let pos = new openerp.web.Model('eiru.pos')
-        pos.call('get_currencies').then(response => {
-            commit('pushCurrencies', {
-                currencies: response
+        return new Promise((resolve, reject) => {
+            let pos = new openerp.web.Model('eiru.pos')
+            pos.call('get_currencies').then(response => {
+                commit('pushCurrencies', {
+                    currencies: response
+                })
+
+                console.log('fetched currencies')
+                resolve()
+            }).fail(error => {
+                console.log(error);
+                reject(error)
             })
-        }).fail(error => {
-            console.log(error);
         })
     }
 }

+ 12 - 7
src/store/modules/customers.js

@@ -22,14 +22,19 @@ const mutations = {
 }
 
 const actions = {
-    fetchCustomers({ commit }){
-        let customer = new openerp.web.Model('res.partner')
-        customer.query(['name', 'display_name', 'image_medium']).filter([['customer', '=', true], ['is_company', '=', false], ['active', '=', true]]).all().then(response => {
-            commit('pushCustomers', {
-                customers: response
+    fetchCustomers({ commit }) {
+        return new Promise((resolve, reject) => {
+            let customer = new openerp.web.Model('res.partner')
+            customer.query(['name', 'display_name', 'image_medium']).filter([['customer', '=', true], ['is_company', '=', false], ['active', '=', true]]).all().then(response => {
+                commit('pushCustomers', {
+                    customers: response
+                })
+                console.log('fetched customers')
+                resolve()
+            }).fail(error => {
+                console.log(error)
+                reject(error)
             })
-        }).fail(error => {
-            console.log(error)
         })
     },
     selectCustomer({ commit }, payload) {

+ 12 - 6
src/store/modules/products.js

@@ -35,13 +35,19 @@ const mutations = {
 
 const actions = {
     fetchProducts ({ commit }) {
-        let pos = new openerp.web.Model('eiru.pos')
-        pos.call('get_products').then(response => {
-            commit('pushProducts', {
-                products: response
+        return new Promise((resolve, reject) => {
+            let pos = new openerp.web.Model('eiru.pos')
+            pos.call('get_products').then(response => {
+                commit('pushProducts', {
+                    products: response
+                })
+
+                console.log('fetched products')
+                resolve()
+            }).fail(error => {
+                console.log(error)
+                reject(error)
             })
-        }).fail(error => {
-            console.log(error)
         })
     },
     selectProduct({ commit, dispatch }, payload) {