// 1 => LOADING // 2 => DONE // 3 => ERROR import * as api from "../api/doctor.js" export default { namespaced: true, state: { doctors: [], lookup_status: 0, current_page: 1, total_doctors: 0, x_search: "", error_message: "", selected_doctor: {} }, mutations: { update_doctors(state, data) { state.doctors = data }, update_lookup_status(state, status) { state.lookup_status = status }, update_current_page(state, val) { state.current_page = val }, update_total_doctors(state, val) { state.total_doctors = val }, update_error_message(state, data) { state.error_message = data }, update_selected_doctor(state, val) { state.selected_doctor = val }, update_x_search(state, val) { state.x_search = val state.current_page = 1 } }, actions: { async lookup(context, prm) { context.commit("update_lookup_status", 1) try { var prm = { token: one_token(), search: context.state.x_search, current_page: context.state.current_page } let resp = await api.lookup(prm) if (resp.status != "OK") { context.commit("update_lookup_status", 3) context.commit("update_error_message", resp.message) } else { context.commit("update_lookup_status", 2) context.commit("update_error_message", "") let data = { records: resp.data.records, total_page: resp.data.total_page, total_filter: resp.data.total_filter } context.commit("update_doctors", resp.data.records) context.commit("update_total_doctors", resp.data.total_page) if ( !( Object.keys(context.state.selected_doctor).length === 0 && context.state.selected_doctor.constructor === Object ) ) { let idx = _.findIndex(resp.data.records, function (o) { return o.id == context.state.selected_doctor.doctor_id }); if (idx >= 0) { context.commit("update_selected_doctor", resp.data.records[idx]); } } } } catch (e) { context.commit("update_lookup_status", 3) context.commit("update_error_message", e.message) } } } }