From 01f9d03b14c32e9af76a2f9bc63c71611bce2abd Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Mon, 26 Apr 2021 17:13:40 +0200 Subject: [PATCH] init vuex store --- .../public/js/AccompanyingCourse/App_test.vue | 19 ++++++++++++++ .../api/accompanyingCourse.js | 25 +++++++++++++++++++ .../AccompanyingCourse/api/participations.js | 5 ++++ .../public/js/AccompanyingCourse/index.js | 20 ++++++++++----- .../public/js/AccompanyingCourse/store/.keep | 0 .../js/AccompanyingCourse/store/index.js | 21 ++++++++++++++++ 6 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue create mode 100644 src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js create mode 100644 src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js delete mode 100644 src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/.keep create mode 100644 src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue new file mode 100644 index 000000000..5e8bd0d09 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js new file mode 100644 index 000000000..1da9261c4 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js @@ -0,0 +1,25 @@ +const + locale = 'fr', + format = 'json', + accompanying_period_id = () => window.accompanyingCourseId +; + +// 1. chill_person_accompanying_course_api_show +let getAccompanyingCourse = (accompanying_period_id) => { + const url = `/${locale}/person/api/1.0/accompanying-course/${accompanying_period_id}/show.${format}`; + return fetch(url).then(response => response.json()); +}; + +// 2. chill_person_accompanying_course_api_add_participation (POST) +let getParticipations = (accompanying_period_id) => { + const url = `/${locale}/person/api/1.0/accompanying-course/${accompanying_period_id}/participation.${format}` + return fetch(url).then(response => response.json()); +}; + +export { getAccompanyingCourse, getParticipations }; + + + +/// +// cfr. promise.all() pour plusieurs promesses +// catch throw sur le dernier then pour capturer l'erreur diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js new file mode 100644 index 000000000..f0341ccd9 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js @@ -0,0 +1,5 @@ + +const _participations = [] + +export default { +} diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js index 4335113f7..6d738de33 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js @@ -1,8 +1,16 @@ -import App from './App.vue'; import { createApp } from 'vue'; +import createStore from './store'; +import App from './App_test.vue'; -const app = createApp({ - template: `` -}) -.component('app', App) -.mount('#accompanying-course'); +createStore.then(store => { + + //console.log('store in create_store', store); + console.log('store course', store.state.course); + + const app = createApp({ + template: ``, + }) + .use(store) + .component('app', App) + .mount('#accompanying-course'); +}); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/.keep b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js new file mode 100644 index 000000000..e9bae629b --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js @@ -0,0 +1,21 @@ +import 'es6-promise/auto'; +import { createStore } from 'vuex'; +import { getAccompanyingCourse, getParticipations } from '../api/accompanyingCourse'; + +const debug = process.env.NODE_ENV !== 'production'; + +let promise = getAccompanyingCourse(window.accompanyingCourseId) + .then(accompanying_course => new Promise((resolve, reject) => { + let store = createStore({ + state() { + return { + course: accompanying_course + } + }, + strict: debug + }); + //console.log('store', store); + resolve(store); + })); + +export default promise;