diff --git a/app/src/services/PitchTypeService.ts b/app/src/services/PitchTypeService.ts index 410b813..fef0f1c 100644 --- a/app/src/services/PitchTypeService.ts +++ b/app/src/services/PitchTypeService.ts @@ -1,29 +1,14 @@ import PitchType from "@/types/PitchType"; -import api from './Api'; -import authHeader from './AuthHeader'; class PitchTypeService { - private static instance: PitchTypeService; - - private constructor() {} - - // Static method to get the instance of the service - public static getInstance(): PitchTypeService { - if (!PitchTypeService.instance) { - PitchTypeService.instance = new PitchTypeService(); - } - return PitchTypeService.instance; + getLocalPitchTypes(): PitchType[] { + return JSON.parse(localStorage.getItem("pitchTypes") || '""'); } - async getAllPitchTypes(): Promise { - const users = await api.get('/pitch_types', { headers: authHeader() }); - return users.data; + updateLocalPitchTypes(pitchTypes: PitchType[]): void { + localStorage.setItem("pitchTypes", JSON.stringify(pitchTypes)); } - async getPitchType(id: number): Promise { - const pitchType = await api.get(`/pitch_types/${id}`, { headers: authHeader() }); - return pitchType.data; - } } -export const pitchTypeService = PitchTypeService.getInstance(); +export default new PitchTypeService(); diff --git a/app/src/store/pitchType.ts b/app/src/store/pitchType.ts index a11b822..efc9938 100644 --- a/app/src/store/pitchType.ts +++ b/app/src/store/pitchType.ts @@ -1,8 +1,11 @@ -import {pitchTypeService} from '@/services/PitchTypeService' +import pitchTypeService from '@/services/PitchTypeService' import PitchType from "@/types/PitchType"; +import api from "@/services/Api"; +import authHeader from '@/services/AuthHeader'; import { Module, ActionContext } from 'vuex'; import { RootState } from './index'; +import {AxiosResponse} from 'axios'; export interface PitchTypeState { pitchTypes: PitchType[]; @@ -15,10 +18,10 @@ const pitchTypes: Module = { state: {pitchTypes: []}, actions: { initialize({ commit }: PitchTypeActionContext) { - return pitchTypeService.getAllPitchTypes().then( - (pitchTypeList: PitchType[]) => { - commit('initializedPitchTypes', pitchTypeList); - return Promise.resolve(pitchTypeList); + api.get('/pitch_types', { headers: authHeader() }).then( + (response: AxiosResponse) => { + commit('initializedPitchTypes', response.data); + return Promise.resolve(response.data); }, error => { return Promise.reject(error); @@ -28,7 +31,7 @@ const pitchTypes: Module = { }, mutations: { initializedPitchTypes(state, pitchTypeList: PitchType[]) { - localStorage.setItem("pitchTypes", JSON.stringify(pitchTypeList)); + pitchTypeService.updateLocalPitchTypes(pitchTypeList); state.pitchTypes = pitchTypeList; } } diff --git a/app/src/views/PitcherList.vue b/app/src/views/PitcherList.vue index 4c60919..e8cc37a 100644 --- a/app/src/views/PitcherList.vue +++ b/app/src/views/PitcherList.vue @@ -1,3 +1,27 @@ + + - - \ No newline at end of file +