Class: RailsVueGenerator::Handlers::StoreHandler
- Inherits:
-
BaseHandler
- Object
- BaseHandler
- RailsVueGenerator::Handlers::StoreHandler
- Defined in:
- lib/rails_vue_generator/handlers/store_handler.rb
Constant Summary
Constants inherited from BaseHandler
Instance Method Summary collapse
Methods inherited from BaseHandler
Constructor Details
This class inherits a constructor from RailsVueGenerator::Handlers::BaseHandler
Instance Method Details
#generate ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/rails_vue_generator/handlers/store_handler.rb', line 6 def generate lines = [] lines << "import api from '@/api'" lines << "import router from '@/router'" lines << '' lines << 'const state = {' lines << ' current: {},' lines << ' all: [],' lines << ' loading: {' lines << ' current: false,' lines << ' all: false' lines << ' }' lines << '}' lines << '' lines << 'const actions = {' lines << ' async getAll({' lines << ' commit' lines << ' }, code) {' lines << " commit('startLoading', 'all')" lines << " const result = await api.#{model_name}.getAll()" lines << ' const responseData = result.data' lines << " commit('store#{model_name.pluralize.titleize}', responseData)" lines << " commit('endLoading', 'all')" lines << ' return responseData' lines << ' },' lines << ' async get({' lines << ' commit' lines << ' }, id) {' lines << " commit('startLoading', 'current')" lines << " const result = await api.#{model_name}.get(id)" lines << ' const responseData = result.data' lines << " commit('store#{model_name.titleize}', responseData)" lines << " commit('endLoading', 'current')" lines << ' return responseData' lines << ' },' lines << ' async create({commit}, data) {' lines << " const result = await api.#{model_name}.create(data)" lines << ' const responseData = result.data' lines << " commit('store#{model_name.titleize}', responseData)" lines << ' return responseData' lines << ' },' lines << ' async update({commit}, {id, data}) {' lines << " commit('startLoading', 'current')" lines << " const result = await api.#{model_name}.update(id, data)" lines << ' const responseData = result.data' lines << " commit('store#{model_name.titleize}', responseData)" lines << " commit('endLoading', 'current')" lines << ' return responseData' lines << ' },' lines << ' async delete({commit}, id) {' lines << " const result = await api.#{model_name}.delete(id)" lines << ' const responseData = result.data' lines << " commit('clearCurrent')" lines << ' return responseData' lines << ' },' lines << ' clearCurrent({commit}) {' lines << ' commit("clearCurrent")' lines << ' }' lines << '' lines << '}' lines << 'const mutations = {' lines << " store#{model_name.titleize}(state, #{model_name}) {" lines << " state.current = #{model_name}" lines << ' },' lines << " store#{model_name.pluralize.titleize}(state, data) {" lines << ' state.all = data' lines << ' },' lines << ' clearCurrent(state) {' lines << ' state.current = {}' lines << ' },' lines << ' startLoading(state, key) {' lines << ' state.loading[key] = true' lines << ' },' lines << ' endLoading(state, key) {' lines << ' state.loading[key] = false' lines << ' }' lines << '}' lines << '' lines << 'export default {' lines << ' namespaced: true,' lines << ' state,' lines << ' actions,' lines << ' mutations' lines << '}' lines << '' lines.join("\n") end |