WIP Auth redesign.

This commit is contained in:
2019-03-07 23:39:24 -06:00
parent 6bc094f515
commit b23d3d36af
18 changed files with 188 additions and 51 deletions

View File

@ -0,0 +1,37 @@
import {
Action,
getModule,
Module,
Mutation,
MutationAction,
VuexModule
} from 'vuex-module-decorators';
import { keyBy } from 'lodash';
import { User, Measure } from '@/models';
import store from '@/store';
import api from '@/services/pm-api-client';
import { logService } from '@/services/logging';
@Module({ namespaced: true, name: 'measure', store, dynamic: true })
class MeasureStoreModule extends VuexModule {
public measures: { [key: string]: Measure } = {};
private log = logService.getLogger('/store-modules/measure');
@MutationAction({ mutate: ['measures'], rawError: true })
public async fetchAllMeasures() {
const measures = await api.getAllMeasures();
return { measures: keyBy(measures, 'slug') };
}
@Action({ commit: 'SET_MEASURE', rawError: true })
public async fetchMeasure(slug: string) {
return await api.getMeasure(slug);
}
@Mutation private SET_MEASURE(measure: Measure) {
this.measures[measure.slug] = measure;
}
}
export default getModule(MeasureStoreModule);