diff --git a/src/abstraction/repository/FileRepository.js b/src/abstraction/repository/FileRepository.js index 8e8f912..3205201 100644 --- a/src/abstraction/repository/FileRepository.js +++ b/src/abstraction/repository/FileRepository.js @@ -1,38 +1,16 @@ -// import axios from "axios"; -// import url from "@/router/url"; -// import { getJson, setData } from "../resources/FileResource"; +import axios from "axios"; +import url from "@/router/url"; +import { getJson, setData } from "../resources/FileResource"; -// export default class FileRepository { +export default class FileRepository { -// async store(data) { -// console.log('data', data); -// const formData = setData(data); -// let response = await axios.post(url("storeFile"), formData); -// if (response.status === 200) { -// return getJson(response.data.data); -// } - // } - - // async destroy(fileId) { - // let response = await axios.delete(url("destroyFile", {file: fileId})); - // if (response.status === 200) { - // return true; - // } - // } - - // async verifyImage(fileId) { - // await axios.post(url("verifyImage",{file:fileId}) ); - // } - - // async unverifyImage(fileId) { - // await axios.post(url("unverifyImage", {file: fileId})); - // } - - // async pdfVerify(imageId) { - // await axios.post(url("pdfVerify",{media:imageId}) ); - // } - - // async pdfUnVerify(imageId) { - // await axios.post(url("pdfUnVerify",{media:imageId}) ); - // } -// } + async store(data) { + console.log('data', data); + const formData = setData(data); + console.log(formData); + let response = await axios.post(url("storeFile"), formData); + if (response.status === 200) { + return getJson(response.data.data); + } + } +} diff --git a/src/abstraction/repository/programRepository.js b/src/abstraction/repository/programRepository.js index e358047..28b22fc 100644 --- a/src/abstraction/repository/programRepository.js +++ b/src/abstraction/repository/programRepository.js @@ -2,6 +2,8 @@ import axios from "axios"; import url from "@/router/url"; import { getArray, + getJson, + setData } from "../resources/programResource"; export default class ProgramRepository { async index() { @@ -12,4 +14,11 @@ export default class ProgramRepository { return getArray(response.data); } } + async store(data) { + let json = setData(data); + let response = await axios.post(url("storeProgram"), json); + if (response.status === 201) { + return getJson(response.data); + } + } } diff --git a/src/abstraction/repository/sportCategoriesRepository.js b/src/abstraction/repository/sportCategoriesRepository.js index efe63d6..fd0fada 100644 --- a/src/abstraction/repository/sportCategoriesRepository.js +++ b/src/abstraction/repository/sportCategoriesRepository.js @@ -1,6 +1,6 @@ import axios from "axios"; import url from "@/router/url"; -import { getArray } from "../resources/sportCategoriesResource"; +import { getArray, getJson } from "../resources/sportCategoriesResource"; export default class SportCategoriesRepository { async index() { let response = await axios.get(url("indexSportCategories")); @@ -8,4 +8,10 @@ export default class SportCategoriesRepository { return getArray(response.data); } } + async show(sportCategoryId) { + let response = await axios.get(url("showSportCategory", { sportCategory: sportCategoryId })); + if (response.status === 200) { + return getJson(response.data.data); + } + } } \ No newline at end of file diff --git a/src/abstraction/repository/workoutCategoriesRepository.js b/src/abstraction/repository/workoutCategoriesRepository.js index 54b162f..ed3e643 100644 --- a/src/abstraction/repository/workoutCategoriesRepository.js +++ b/src/abstraction/repository/workoutCategoriesRepository.js @@ -4,7 +4,6 @@ import { getArray, setQuery } from "../resources/workoutCategoriesResources"; export default class WorkoutCategoriesRepository { async index(data) { let params = setQuery(data); - console.log(params); let response = await axios.get(url("indexWorkoutCategories"), { params }); if (response.status === 200) { return getArray(response.data); diff --git a/src/abstraction/repository/workoutRepository.js b/src/abstraction/repository/workoutRepository.js index c26b3bb..c0fb4f2 100644 --- a/src/abstraction/repository/workoutRepository.js +++ b/src/abstraction/repository/workoutRepository.js @@ -8,14 +8,29 @@ export default class WorkoutRepository { return getArray(response.data); } } + async show(workoutId) { + let response = await axios.get(url("showWorkout", { workout: workoutId })); + if (response.status === 200) { + return getJson(response.data.data); + } + } async store(data) { let json = setData(data); let response = await axios.post(url("storeWorkout"), json); - console.log('kldsbhakjbg', response.data); if (response.status === 201) { return getJson(response.data); } } + async update(workoutId, data) { + let json = setData(data, true); + let response = await axios.post( + url("updateWorkout", { workout: workoutId }), + json + ); + if (response.status === 200) { + return response.data.data; + } + } async delete(workoutId) { await axios.delete(url("destroyWorkout", { workout: workoutId })); } diff --git a/src/abstraction/resources/FileResource.js b/src/abstraction/resources/FileResource.js index ed12c75..68a3557 100644 --- a/src/abstraction/resources/FileResource.js +++ b/src/abstraction/resources/FileResource.js @@ -1,16 +1,14 @@ -// import { objectToFormData } from "@/utils/objectToFormData"; +import { objectToFormData } from "@/utils/objectToFormData"; -// export const getJson = (data) => ({ -// id: data.id, -// thumbnail: data.thumbnail, -// image: data.image, -// mime_type: data.mime_type, -// file_name: data.file_name, -// size: data.size, -// }); +export const getJson = (data) => ({ + id: data.id, + url: data.url, +}); -// export const setData = (data) => ( -// objectToFormData({ -// file: data.file, -// crop: data.crop, -// })); +export const setData = (data) => ( + objectToFormData({ + media: data.media.file, + crop: data.crop, + batch_id: data.batch_id, + collection: data.collection, + })); diff --git a/src/abstraction/resources/programResource.js b/src/abstraction/resources/programResource.js index 560a1f9..3fd894b 100644 --- a/src/abstraction/resources/programResource.js +++ b/src/abstraction/resources/programResource.js @@ -1,19 +1,33 @@ import { SetPagination } from "@/utils/setQueriesObject"; import { getJsonTrainer } from './trainerProgramResource'; import { getJsonSportCategory } from './sportCategoryPorgramResource'; +import { objectToFormData } from "@/utils/objectToFormData"; export const getJson = (data) => ({ id: data.id, trainer: data.trainer ? getJsonTrainer(data.trainer) : {}, sport_category: data.trainer ? getJsonSportCategory(data.trainer) : {}, sport_category_id: data.sport_category_id, + thumbnail: data.thumbnail, + verified: data.verified, status: data.status, title: data.title, description: data.description, - created_at: data.created_at, - updated_at: data.updated_at, - series_count: data.series_count + series_count: data.series_count, + workouts_count: data.workouts_count, }); - +export const setData = (data, isUpdate = false) => { + let formData = { + sport_category_id: data.sport_category_id, + title: data.title, + description: data.description, + tags: data.tags, + batch_id: data.batch_id + }; + if (isUpdate) { + formData["_method"] = "put"; + } + return objectToFormData(formData); +}; export const getArray = ({ data, meta }) => { const pagination = SetPagination(meta); data = data.map((program) => getJson(program)); diff --git a/src/abstraction/resources/workoutResource.js b/src/abstraction/resources/workoutResource.js index 0396846..daef415 100644 --- a/src/abstraction/resources/workoutResource.js +++ b/src/abstraction/resources/workoutResource.js @@ -3,12 +3,12 @@ export const getJson = (data) => ({ id: data.id, local_name: data.local_name, name: data.name, + workout_category_id: data.workout_category.id, + sport_category_id: data.workout_category.sport_category ? data.workout_category.sport_category.id : null, description: data.description, - suggestion_default: { - suggested_per_ste: data.suggestion_default.suggested_per_set, - suggested_set: data.suggestion_default.suggested_set, - suggested_time: data.suggestion_default.suggested_time, - }, + suggested_per_set: data.suggested_per_set, + suggested_set: data.suggested_set, + suggested_time: data.suggested_time, tags: data.tags, thumbnail: data.thumbnail, title: data.title, @@ -16,6 +16,7 @@ export const getJson = (data) => ({ }); export const setData = (data, isUpdate = false) => { let formData = { + id: data.id, workout_category_id: data.workout_category_id, name: data.name, local_name: data.local_name, @@ -25,7 +26,7 @@ export const setData = (data, isUpdate = false) => { suggested_per_set: data.suggested_per_set, suggested_set: data.suggested_set, suggested_time: data.suggested_time, - thumbnail: data.thumbnail, + batch_id: data.batch_id, tags: data.tags, }; if (isUpdate) { @@ -34,7 +35,7 @@ export const setData = (data, isUpdate = false) => { return objectToFormData(formData); }; export const getArray = ({ data }) => { - + data = data.map((workout) => getJson(workout)); return { data }; }; diff --git a/src/components/AddProgram/Main.vue b/src/components/AddProgram/Main.vue index 469a1dc..507abcf 100644 --- a/src/components/AddProgram/Main.vue +++ b/src/components/AddProgram/Main.vue @@ -14,28 +14,31 @@
-
-
- -
- select a cover image -
-
+
+
+ class="mt-0 pt-0" + item-text="name" + item-value="id" + label="program category" + :items="getSportCategories" + v-model="form.sport_category_id" + > - - - \ No newline at end of file +