parent
b76325016b
commit
6fe72d9add
@ -0,0 +1,18 @@
|
||||
import axios from "axios";
|
||||
import url from '@/router/url';
|
||||
import { getArray } from "../resources/bookmarksResource";
|
||||
|
||||
export default class BookmarsRepository {
|
||||
async indexCourses() {
|
||||
let response = await axios.get(url('indexCoursesBookmarks'));
|
||||
if (response.status === 200) {
|
||||
return getArray(response.data);
|
||||
}
|
||||
}
|
||||
async indexWorkouts() {
|
||||
let response = await axios.get(url('indexWorkoutsBookmarks'));
|
||||
if (response.status === 200) {
|
||||
return getArray(response.data);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
import axios from "axios";
|
||||
import url from '@/router/url';
|
||||
import { getJson } from "../resources/countriesResource";
|
||||
|
||||
export default class CountriesRepository {
|
||||
async index() {
|
||||
let response = await axios.get(url("indexCountries"));
|
||||
if (response.status === 200) {
|
||||
return getJson(response.data)
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
import axios from "axios";
|
||||
import url from "@/router/url";
|
||||
import { getArray } from "../resources/productCategoriesResource";
|
||||
export default class ProductCategoriesRepository {
|
||||
async index() {
|
||||
let response = await axios.get(url("indexProductCategories"));
|
||||
if (response.status === 200) {
|
||||
return getArray(response.data);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
import axios from "axios";
|
||||
import url from "@/router/url";
|
||||
import { getJson, setData, getArray, setQuery } from "../resources/productResource";
|
||||
export default class ProductRepository {
|
||||
async index(data) {
|
||||
let params = setQuery(data);
|
||||
let response = await axios.get(url("indexProduct"), { params });
|
||||
if (response.status === 200) {
|
||||
return getArray(response.data);
|
||||
}
|
||||
}
|
||||
async show(productId) {
|
||||
let response = await axios.get(url("showProduct", { product: productId }));
|
||||
if (response.status === 200) {
|
||||
return getJson(response.data.data);
|
||||
}
|
||||
}
|
||||
async store(data) {
|
||||
let json = setData(data);
|
||||
let response = await axios.post(url("storeProduct"), json);
|
||||
if (response.status === 201) {
|
||||
return getJson(response.data);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
import axios from "axios";
|
||||
import url from '@/router/url'
|
||||
import { setData, getJson } from '../resources/profileResource';
|
||||
export default class ProfileRepository {
|
||||
async show() {
|
||||
let response = await axios.get(url("showProfile"));
|
||||
if (response.status === 200) {
|
||||
return getJson(response.data.data);
|
||||
}
|
||||
}
|
||||
async update(data) {
|
||||
let json = setData(data, true);
|
||||
let response = await axios.post(url("updateProfile"), json);
|
||||
if (response.status === 200) {
|
||||
return getJson(response.data.data);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
import axios from "axios";
|
||||
import url from "@/router/url";
|
||||
import { getJson, setData } from "../resources/programSerieResource";
|
||||
export default class ProgramSerieRepository {
|
||||
async show(courseId) {
|
||||
let response = await axios.get(url("showProgram", { course: courseId }));
|
||||
if (response.status === 200) {
|
||||
return getJson(response.data.data);
|
||||
}
|
||||
}
|
||||
async store(data, courseId) {
|
||||
let json = setData(data);
|
||||
let response = await axios.post(url("storeSerie", { course: courseId }), json);
|
||||
if (response.status === 201 || response.status === 200) {
|
||||
return getJson(response.data);
|
||||
}
|
||||
}
|
||||
async delete(data) {
|
||||
await axios.delete(url("destroySerie", { serie: data }));
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import axios from "axios";
|
||||
import url from "@/router/url";
|
||||
import { getArray, setQuery } from "../resources/usersResource";
|
||||
|
||||
export default class UsersRepository {
|
||||
async index(data) {
|
||||
let params = setQuery(data)
|
||||
let response = await axios.get(url('indexUsers'), { params })
|
||||
if (response.status === 200) {
|
||||
return getArray(response.data)
|
||||
}
|
||||
}
|
||||
async delete(userId) {
|
||||
await axios.delete(url("destroyUser", { user: userId }));
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
import axios from "axios";
|
||||
import url from "@/router/url";
|
||||
import { getJson, getArray, setQuery, setData } from "../resources/workoutResource.js";
|
||||
export default class WorkoutToSerieRepository {
|
||||
async index(data) {
|
||||
let params = setQuery(data);
|
||||
let response = await axios.get(url("indexClientWorkout"), { params });
|
||||
if (response.status === 200) {
|
||||
return getArray(response.data);
|
||||
}
|
||||
}
|
||||
async show(workoutId) {
|
||||
let response = await axios.get(url("showClientWorkout", { workout: workoutId }));
|
||||
if (response.status === 200) {
|
||||
return getJson(response.data.data);
|
||||
}
|
||||
}
|
||||
async store(data, serieId, workoutId) {
|
||||
let json = setData(data);
|
||||
let response = await axios.post(url("joinWorkoutToSerie", { serie: serieId, workout: workoutId }), json);
|
||||
if (response.status === 201 || response.status === 200) {
|
||||
return response.data;
|
||||
}
|
||||
}
|
||||
async delete(data) {
|
||||
await axios.delete(url("destroyWorkoutFromSerie", { serie: data.serieId, workout: data.workoutId }));
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import { getJson as getJsonProgram } from './programResource'
|
||||
import { getJson as getJsonWorkout } from './workoutResource'
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
bookmarkable_type: data.bookmarkable_type,
|
||||
bookmarkable_id: data.bookmarkable_id,
|
||||
user_id: data.user_id,
|
||||
|
||||
bookmark_data: data.courses ? getJsonProgram(data.courses) : getJsonWorkout(data.workouts),
|
||||
});
|
||||
export const getArray = ({ data }) => {
|
||||
// const pagination = SetPagination(meta);
|
||||
console.log(data);
|
||||
data = data.map(bookmark => getJson(bookmark));
|
||||
return { data };
|
||||
};
|
@ -0,0 +1,9 @@
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
name: data.name,
|
||||
code: data.code
|
||||
});
|
||||
export const getArray = ({ data }) => {
|
||||
data = data.map(country => getJson(country))
|
||||
return { data }
|
||||
};
|
@ -0,0 +1,11 @@
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
local_name: data.local_name,
|
||||
name: data.name,
|
||||
label: data.name,
|
||||
children: data.children
|
||||
});
|
||||
export const getArray = ({ data }) => {
|
||||
data = data.map((productCategory) => getJson(productCategory));
|
||||
return { data };
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
import { objectToFormData } from "@/utils/objectToFormData";
|
||||
import { SetPagination, SetQueriesObject } from "@/utils/setQueriesObject";
|
||||
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
thumbnail: data.thumbnail,
|
||||
title: data.title,
|
||||
tags: data.tags,
|
||||
description: data.description,
|
||||
images: data.images,
|
||||
name: data.name,
|
||||
video_link: data.video_link,
|
||||
purchase_link: data.purchase_link,
|
||||
price: data.price,
|
||||
weight: data.weight,
|
||||
dimensions: data.dimensions,
|
||||
product_category: data.product_category,
|
||||
product_categories_id: data.product_category?.id,
|
||||
product_category_id: data.product_category?.parent?.id
|
||||
});
|
||||
export const setData = (data, isUpdate = false) => {
|
||||
let formData = {
|
||||
product_category_id: data.product_category_id,
|
||||
title: data.title,
|
||||
description: data.description,
|
||||
purchase_link: data.purchase_link,
|
||||
price: `${data.price}$`,
|
||||
video_link: data.video_link,
|
||||
name: data.name,
|
||||
dimensions: `${data.dimensions}cm`,
|
||||
weight: `${data.weight}kg`,
|
||||
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(product => getJson(product));
|
||||
return { data, pagination };
|
||||
};
|
||||
|
||||
export const setQuery = (data) => {
|
||||
return SetQueriesObject(data);
|
||||
};
|
@ -0,0 +1,11 @@
|
||||
export const getJsonProductSubCategory = (data) => ({
|
||||
id: data.id,
|
||||
name: data.name,
|
||||
label: data.name,
|
||||
local_name: data.local_name,
|
||||
children: data.children ? getArrayProductSubCategory(data.children) : [],
|
||||
});
|
||||
export const getArrayProductSubCategory = (data) => {
|
||||
data = data.map((productCategory) => getJsonProductSubCategory(productCategory));
|
||||
return data;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
import { objectToFormData } from "@/utils/objectToFormData";
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
first_name: data.first_name,
|
||||
last_name: data.last_name,
|
||||
birthday: data.birthday,
|
||||
weight: data.weight,
|
||||
height: data.height,
|
||||
arm_diameter: data.arm_diameter,
|
||||
leg_diameter: data.leg_diameter,
|
||||
details: data.details,
|
||||
profile: data.profile,
|
||||
address: data.address,
|
||||
email: data.email,
|
||||
cell_number: data.cell_number,
|
||||
is_admin: data.is_admin,
|
||||
is_trainer: data.is_trainer,
|
||||
country: data.country,
|
||||
country_id: data.country.id,
|
||||
created_courses_count: data.created_courses_count,
|
||||
joined_courses_count: data.joined_courses_count
|
||||
});
|
||||
export const setData = (data, isUpdate = false) => {
|
||||
let formData = {
|
||||
first_name: data.first_name,
|
||||
last_name: data.last_name,
|
||||
birthday: data.birthday,
|
||||
weight: data.weight,
|
||||
height: data.height,
|
||||
arm_diameter: data.arm_diameter,
|
||||
leg_diameter: data.leg_diameter,
|
||||
details: data.details,
|
||||
address: data.address,
|
||||
email: data.email,
|
||||
cell_number: data.cell_number,
|
||||
country_id: data.country_id,
|
||||
};
|
||||
if (isUpdate) {
|
||||
formData["_method"] = "put";
|
||||
}
|
||||
return objectToFormData(formData);
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
import { getJsonTrainer } from './trainerProgramResource';
|
||||
import { objectToFormData } from "@/utils/objectToFormData";
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
trainer: data.trainer ? getJsonTrainer(data.trainer) : {},
|
||||
sport_category_id: data.sport_category_id,
|
||||
verified: data.verified,
|
||||
title: data.title,
|
||||
description: data.description,
|
||||
thumbnail: data.thumbnail,
|
||||
course_type: data.course_type,
|
||||
tags: data.tags,
|
||||
series_count: data.series_count,
|
||||
workouts_count: data.workouts_count,
|
||||
series: data.series,
|
||||
course_series_id: data.course_series_id,
|
||||
estimate_time: data.estimate_time,
|
||||
repeat: data.repeat,
|
||||
name: data.name
|
||||
});
|
||||
export const setData = (data) => {
|
||||
let formData = {
|
||||
name: data.name,
|
||||
estimate_time: data.estimate_time,
|
||||
repeat: data.repeat
|
||||
};
|
||||
return objectToFormData(formData);
|
||||
};
|
@ -0,0 +1,28 @@
|
||||
import { SetPagination, SetQueriesObject } from "@/utils/setQueriesObject";
|
||||
export const getJson = (data) => ({
|
||||
id: data.id,
|
||||
first_name: data.first_name,
|
||||
last_name: data.last_name,
|
||||
birthday: data.birthday,
|
||||
weight: data.weight,
|
||||
height: data.height,
|
||||
arm_diameter: data.arm_diameter,
|
||||
leg_diameter: data.leg_diameter,
|
||||
details: data.details,
|
||||
profile: data.profile,
|
||||
address: data.address,
|
||||
email: data.email,
|
||||
cell_number: data.cell_number,
|
||||
is_admin: data.is_admin,
|
||||
is_trainer: data.is_trainer,
|
||||
created_courses_count: data.created_courses_count,
|
||||
joined_courses_count: data.joined_courses_count
|
||||
});
|
||||
export const getArray = ({ data, meta }) => {
|
||||
const pagination = SetPagination(meta);
|
||||
data = data.map((user) => getJson(user));
|
||||
return { data, pagination };
|
||||
};
|
||||
export const setQuery = (data) => {
|
||||
return SetQueriesObject(data);
|
||||
};
|
@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<basic-modal width="520" transition="slide-x-transition">
|
||||
<template #header>
|
||||
<div class="close__modal">
|
||||
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
|
||||
</div>
|
||||
</template>
|
||||
<template #default>
|
||||
<div>
|
||||
<SectionTitle
|
||||
title="add a series"
|
||||
subTitle="let us help in your search"
|
||||
:is-modal="true"
|
||||
/>
|
||||
</div>
|
||||
<div class="mt-6 mb-10">
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<v-text-field
|
||||
dark
|
||||
placeholder="series Name"
|
||||
label="series Name"
|
||||
class="no-error-msg"
|
||||
v-model="form.name"
|
||||
></v-text-field
|
||||
></v-col>
|
||||
</v-row>
|
||||
<div class="mt-5">
|
||||
<v-row>
|
||||
<v-col cols="6"
|
||||
><v-text-field
|
||||
dark
|
||||
placeholder="how many times in a week?"
|
||||
label="how many times in a week?"
|
||||
class="no-error-msg mt-0 pt-0"
|
||||
v-model="form.repeat"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
<v-col cols="6">
|
||||
<TimeInput
|
||||
v-model="form.estimate_time"
|
||||
class="no-error-msg"
|
||||
placeholder="estimated training time"
|
||||
label="estimated training time"
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
<v-spacer></v-spacer>
|
||||
<div
|
||||
class="d-flex justify-space-between align-items-center w-100 px-4 pb-10"
|
||||
>
|
||||
<RectangleButton
|
||||
class="btn__modal--cancel pl-0"
|
||||
text="cancel"
|
||||
icon="WMi-cancel-1"
|
||||
text-mode="text"
|
||||
size="large"
|
||||
:is-modal="true"
|
||||
height="29"
|
||||
@click.native="$_closeModal()"
|
||||
/>
|
||||
<RectangleButton
|
||||
height="29"
|
||||
class="btn__modal--confirm custom-btn wa__f__m__eb"
|
||||
text="add"
|
||||
@click.native="addSerie"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</basic-modal>
|
||||
</template>
|
||||
<script>
|
||||
import { mapActions } from "vuex";
|
||||
import SectionTitle from "../../Global/Section/SectionTitle.vue";
|
||||
export default {
|
||||
name: "modal_add_series",
|
||||
components: { SectionTitle },
|
||||
props: {
|
||||
programId: {},
|
||||
},
|
||||
data: () => ({
|
||||
form: {},
|
||||
}),
|
||||
methods: {
|
||||
...mapActions("programSerie", ["addSerieToProgram"]),
|
||||
async addSerie() {
|
||||
let response = await this.addSerieToProgram({
|
||||
data: this.form,
|
||||
courseId: Number(this.programId),
|
||||
});
|
||||
if (response) {
|
||||
this.$_closeModal();
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -0,0 +1,197 @@
|
||||
<template>
|
||||
<basic-modal width="800" transition="slide-x-transition">
|
||||
<template #header>
|
||||
<div class="close__modal">
|
||||
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
|
||||
</div>
|
||||
</template>
|
||||
<template #default>
|
||||
<div>
|
||||
<SectionTitle
|
||||
title="add a workout"
|
||||
subTitle="let us help in your search"
|
||||
:is-modal="true"
|
||||
/>
|
||||
</div>
|
||||
<div class="mt-8 mb-10">
|
||||
<div>
|
||||
<v-autocomplete
|
||||
class="no-error-msg pt-0"
|
||||
placeholder="search the workout name you want to add"
|
||||
label="search the workout name you want to add"
|
||||
append-icon="WMi-search"
|
||||
:items="getWorkoutsToSerie"
|
||||
item-value="id"
|
||||
item-text="title"
|
||||
:loading="isLoading"
|
||||
:search-input.sync="search"
|
||||
>
|
||||
<template #item="{ item }">
|
||||
<div class="dashfkl w-100">
|
||||
<AddWorkoutsItem
|
||||
@click.native="joinWorkout(item.id)"
|
||||
:addWorkout="item"
|
||||
:add="true"
|
||||
class="mt-3"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</v-autocomplete>
|
||||
</div>
|
||||
<template v-if="Object.keys(getWorkoutToSerie).length !== 0">
|
||||
<v-divider class="mt-6"></v-divider>
|
||||
<v-row class="mt-1">
|
||||
<v-col cols="12"
|
||||
><AddWorkoutsItem :addWorkout="getWorkoutToSerie" :add="true"
|
||||
/></v-col>
|
||||
</v-row>
|
||||
</template>
|
||||
<div class="mt-6">
|
||||
<v-row
|
||||
:class="{ 'mt-9': Object.keys(getWorkoutToSerie).length === 0 }"
|
||||
>
|
||||
<v-col cols="4">
|
||||
<v-text-field
|
||||
dark
|
||||
placeholder="how many courses?"
|
||||
label="how many courses?"
|
||||
class="no-error-msg pt-0 mt-0"
|
||||
v-model="form.set"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
<v-col cols="4">
|
||||
<v-text-field
|
||||
dark
|
||||
placeholder="how many times each course?"
|
||||
label="how many times each course?"
|
||||
class="no-error-msg pt-0 mt-0"
|
||||
v-model="form.per_set"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
<v-col cols="4">
|
||||
<TimeInput
|
||||
v-model="form.estimate_time"
|
||||
class="no-error-msg"
|
||||
placeholder="ESTIMATED REQUIRED TIME"
|
||||
label="ESTIMATED REQUIRED TIME"
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<v-textarea
|
||||
placeholder="any other description"
|
||||
label="any other description"
|
||||
class="no-error-msg"
|
||||
dark
|
||||
row="4"
|
||||
v-model="form.description"
|
||||
></v-textarea>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
<v-spacer></v-spacer>
|
||||
<div class="d-flex justify-space-between align-items-center w-100 px-4">
|
||||
<RectangleButton
|
||||
class="btn__modal--cancel pl-0"
|
||||
text="cancel"
|
||||
icon="WMi-cancel-1"
|
||||
text-mode="text"
|
||||
size="large"
|
||||
:is-modal="true"
|
||||
height="29"
|
||||
@click.native="$_closeModal()"
|
||||
/>
|
||||
<RectangleButton
|
||||
height="29"
|
||||
class="btn__modal--confirm custom-btn wa__f__m__eb"
|
||||
text="add"
|
||||
@click.native="WorkoutToSerie"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</basic-modal>
|
||||
</template>
|
||||
<script>
|
||||
import SectionTitle from "../../Global/Section/SectionTitle.vue";
|
||||
import AddWorkoutsItem from "../Item.vue";
|
||||
import { mapActions, mapGetters, mapMutations } from "vuex";
|
||||
import { cloneDeep } from "lodash";
|
||||
let cancelId;
|
||||
const defaultFilter = {
|
||||
title: {
|
||||
type: "like",
|
||||
val: null,
|
||||
},
|
||||
};
|
||||
export default {
|
||||
name: "modal_add_workout",
|
||||
components: { SectionTitle, AddWorkoutsItem },
|
||||
data: () => ({
|
||||
filter: cloneDeep(defaultFilter),
|
||||
search: null,
|
||||
isLoading: false,
|
||||
isLoadingTimeout: null,
|
||||
form: {},
|
||||
workoutId: null,
|
||||
}),
|
||||
computed: {
|
||||
...mapGetters("workoutToSerie", [
|
||||
"getWorkoutsToSerie",
|
||||
"getWorkoutToSerie",
|
||||
]),
|
||||
...mapGetters("programSerie", ["getCurrentSerieId"]),
|
||||
},
|
||||
watch: {
|
||||
search(val) {
|
||||
this.isLoading = true;
|
||||
clearTimeout(cancelId);
|
||||
if (val && val.length > 1) {
|
||||
cancelId = setTimeout(async () => {
|
||||
this.filter.title.val = val;
|
||||
this.SET_FILTER_WORKOUTS_TO_SERIE(this.filter);
|
||||
await this.loadWorkoutsToSerie();
|
||||
this.isLoading = false;
|
||||
}, 400);
|
||||
} else if (val.length == 0) {
|
||||
this.SET_FILTER_WORKOUTS_TO_SERIE({});
|
||||
this.loadWorkoutsToSerie();
|
||||
this.isLoading = false;
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions("workoutToSerie", [
|
||||
"loadWorkoutsToSerie",
|
||||
"loadWorkoutToSerie",
|
||||
"addWorkoutToSerie",
|
||||
]),
|
||||
...mapMutations("workoutToSerie", ["SET_FILTER_WORKOUTS_TO_SERIE"]),
|
||||
async joinWorkout(id) {
|
||||
this.workoutId = id;
|
||||
await this.loadWorkoutToSerie(this.workoutId);
|
||||
},
|
||||
async WorkoutToSerie() {
|
||||
let response = await this.addWorkoutToSerie({
|
||||
data: this.form,
|
||||
serieId: Number(this.getCurrentSerieId),
|
||||
workoutId: this.workoutId,
|
||||
});
|
||||
if (response) {
|
||||
this.$_closeModal();
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.loadWorkoutsToSerie();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.theme--light.v-list {
|
||||
background-color: rgb(46, 45, 45) !important;
|
||||
}
|
||||
</style>
|
@ -1,6 +1,6 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_AUTH_USER(state, data) {
|
||||
Vue.set(state, "user", data);
|
||||
SET_AUTH_USER(state, payload) {
|
||||
Vue.set(state, "user", payload);
|
||||
},
|
||||
};
|
||||
|
@ -0,0 +1,15 @@
|
||||
import BookmarksRepository from "@/abstraction/repository/bookmarksRepository";
|
||||
export default {
|
||||
async loadBookmarksPrograms({ commit }) {
|
||||
let repository = new BookmarksRepository();
|
||||
const resource = await repository.indexCourses();
|
||||
commit("SET_BOOKMARKS_PROGRAMS", resource.data);
|
||||
// commit("SET_PAGINATION", resource.pagination);
|
||||
},
|
||||
async loadBookmarksWorkouts({ commit }) {
|
||||
let repository = new BookmarksRepository();
|
||||
const resource = await repository.indexWorkouts();
|
||||
commit("SET_BOOKMARKS_WORKOUTS", resource.data);
|
||||
// commit("SET_PAGINATION", resource.pagination);
|
||||
},
|
||||
};
|
@ -0,0 +1,4 @@
|
||||
export default {
|
||||
getBookmarksPrograms: state => state.programs,
|
||||
getBookmarksWorkouts: state => state.workouts,
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_BOOKMARKS_PROGRAMS(state, payload) {
|
||||
Vue.set(state, "programs", payload)
|
||||
},
|
||||
SET_BOOKMARKS_WORKOUTS(state, payload) {
|
||||
Vue.set(state, "workouts", payload)
|
||||
},
|
||||
};
|
@ -0,0 +1,7 @@
|
||||
export default {
|
||||
programs: [],
|
||||
workouts: [],
|
||||
pagination: {
|
||||
itemsPerPage: 12
|
||||
},
|
||||
};
|
@ -0,0 +1,8 @@
|
||||
import CountriesRepository from "@/abstraction/repository/countriesRepository"
|
||||
export default {
|
||||
async loadCountries({ commit }) {
|
||||
let repository = new CountriesRepository();
|
||||
let resource = await repository.index();
|
||||
commit('SET_COUNTRIES', resource.data)
|
||||
},
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
getCountries: state => state.countries
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
import Vue from 'vue';
|
||||
export default {
|
||||
SET_COUNTRIES(state, payload) {
|
||||
Vue.set(state, 'countries', payload)
|
||||
},
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
countries: []
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
import ProductCategoriesRepository from "@/abstraction/repository/productCategoriesRepository";
|
||||
export default {
|
||||
async loadProductCategories({ commit }) {
|
||||
let repository = new ProductCategoriesRepository();
|
||||
const resource = await repository.index();
|
||||
commit("SET_PRODUCT_CATEGORIES", resource.data);
|
||||
},
|
||||
};
|
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
getProductCategories: state => state.productCategories,
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_PRODUCT_CATEGORIES(state, payload) {
|
||||
Vue.set(state, "productCategories", payload);
|
||||
},
|
||||
};
|
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
productCategories: [],
|
||||
};
|
@ -0,0 +1,29 @@
|
||||
import ProductRepository from "@/abstraction/repository/productRepository";
|
||||
export default {
|
||||
async loadProducts({ state, commit }) {
|
||||
let data = { pagination: state.pagination };
|
||||
let repository = new ProductRepository();
|
||||
const resource = await repository.index(data);
|
||||
console.log('dfsa');
|
||||
console.log('resource', resource);
|
||||
commit("SET_PRODUCTS", resource.data);
|
||||
commit("SET_PAGINATION", resource.pagination);
|
||||
|
||||
|
||||
},
|
||||
async loadProduct({ commit }, productId) {
|
||||
let repository = new ProductRepository();
|
||||
const resource = await repository.show(productId);
|
||||
commit("SET_PRODUCT", resource);
|
||||
},
|
||||
async addProduct({ commit }, data) {
|
||||
let repository = new ProductRepository();
|
||||
const resource = await repository.store(data);
|
||||
commit("ADD_PRODUCT", resource.data);
|
||||
},
|
||||
async updateProduct({ commit }, data) {
|
||||
let repository = new ProductRepository();
|
||||
const resource = await repository.update(data.id, data);
|
||||
commit("UPDATE_PRODUCT", resource);
|
||||
}
|
||||
};
|
@ -0,0 +1,5 @@
|
||||
export default {
|
||||
getProducts: state => state.products,
|
||||
getProduct: state => state.product,
|
||||
getPaginationProduct: state => state.pagination
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_PRODUCTS(state, payload) {
|
||||
console.log('payload', payload);
|
||||
Vue.set(state, "products", payload)
|
||||
},
|
||||
SET_PAGINATION(state, pagination) {
|
||||
pagination = { ...state.pagination, ...pagination };
|
||||
Vue.set(state, "pagination", pagination);
|
||||
},
|
||||
SET_PRODUCT(state, payload) {
|
||||
Vue.set(state, "product", payload);
|
||||
},
|
||||
ADD_PRODUCT(state, payload) {
|
||||
state.products.push(payload);
|
||||
},
|
||||
UPDATE_PROGRAM(state, payload) {
|
||||
const index = state.products.findIndex((x) => x.id === payload.id);
|
||||
Vue.set(state.products, index, payload);
|
||||
},
|
||||
};
|
@ -0,0 +1,7 @@
|
||||
export default {
|
||||
products: [],
|
||||
product: {},
|
||||
pagination: {
|
||||
itemsPerPage: 12
|
||||
},
|
||||
};
|
@ -0,0 +1,13 @@
|
||||
import ProfileRepository from "@/abstraction/repository/profileRepository"
|
||||
export default {
|
||||
async loadProfile({ commit },) {
|
||||
let repository = new ProfileRepository();
|
||||
let resource = await repository.show();
|
||||
commit('SET_PROFILE', resource)
|
||||
},
|
||||
async updateProfile({ commit }, data) {
|
||||
let repository = new ProfileRepository();
|
||||
let resource = await repository.update(data);
|
||||
commit("UPDATE_PROFILE", resource);
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
getProfile: state => state.profile
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
import Vue from 'vue';
|
||||
export default {
|
||||
SET_PROFILE(state, payload) {
|
||||
Vue.set(state, 'profile', payload)
|
||||
},
|
||||
UPDATE_PROFILE(state, payload) {
|
||||
Vue.set(state, 'profile', payload)
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
profile: {}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
import ProgramSerieRepository from "@/abstraction/repository/programSerieRepository";
|
||||
export default {
|
||||
async loadProgramSerie({ commit }, courseId) {
|
||||
let repository = new ProgramSerieRepository();
|
||||
const resource = await repository.show(courseId);
|
||||
commit("SET_PROGRAM_SERIE", resource);
|
||||
},
|
||||
async addSerieToProgram({ commit }, data) {
|
||||
let repository = new ProgramSerieRepository();
|
||||
const resource = await repository.store(data.data, data.courseId);
|
||||
if (resource) {
|
||||
commit("ADD_SERIE_TO_PROGRAM", resource.data);
|
||||
return resource
|
||||
}
|
||||
},
|
||||
async deleteSerieFromProgram({ commit }, serieId) {
|
||||
let repository = new ProgramSerieRepository();
|
||||
await repository.delete(serieId);
|
||||
commit('DELETE_SERIE_FROM_PROGRAM', serieId);
|
||||
},
|
||||
};
|
@ -0,0 +1,4 @@
|
||||
export default {
|
||||
getProgramSerie: state => state.programSerie,
|
||||
getCurrentSerieId: state => state.currentSerieId
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_PROGRAM_SERIE(state, payload) {
|
||||
Vue.set(state, "programSerie", payload);
|
||||
},
|
||||
SET_CURRENT_SERIE_ID(state, payload) {
|
||||
Vue.set(state, "currentSerieId", payload);
|
||||
},
|
||||
ADD_SERIE_TO_PROGRAM(state, payload) {
|
||||
state.programSerie.series.push(payload);
|
||||
},
|
||||
DELETE_SERIE_FROM_PROGRAM(state, payload) {
|
||||
const index = state.programSerie.series.findIndex((x) => x.id === payload);
|
||||
Vue.delete(state.programSerie.series, index)
|
||||
}
|
||||
};
|
@ -0,0 +1,4 @@
|
||||
export default {
|
||||
programSerie: {},
|
||||
currentSerieId: null,
|
||||
};
|
@ -1,29 +1,28 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_PROGRAMS(state, data) {
|
||||
Vue.set(state, "programs", data);
|
||||
SET_PROGRAMS(state, payload) {
|
||||
Vue.set(state, "programs", payload);
|
||||
},
|
||||
SET_PROGRAM(state, data) {
|
||||
Vue.set(state, "program", data);
|
||||
SET_PROGRAM(state, payload) {
|
||||
Vue.set(state, "program", payload);
|
||||
},
|
||||
SET_PAGINATION(state, pagination) {
|
||||
pagination = { ...state.pagination, ...pagination };
|
||||
Vue.set(state, "pagination", pagination);
|
||||
},
|
||||
ADD_PROGRAM(state, data) {
|
||||
state.programs.push(data);
|
||||
ADD_PROGRAM(state, payload) {
|
||||
state.programs.push(payload);
|
||||
},
|
||||
UPDATE_PROGRAM(state, data) {
|
||||
const index = state.programs.findIndex((x) => x.id === data.id);
|
||||
Vue.set(state.programs, index, data);
|
||||
UPDATE_PROGRAM(state, payload) {
|
||||
const index = state.programs.findIndex((x) => x.id === payload.id);
|
||||
Vue.set(state.programs, index, payload);
|
||||
},
|
||||
DELETE_PROGRAM(state, courseId) {
|
||||
const index = state.programs.findIndex((x) => x.id === courseId);
|
||||
state.programs.splice(index, 1);
|
||||
Vue.delete(state.programs, index)
|
||||
},
|
||||
VERIFY_PROGRAM(state, courseId) {
|
||||
const index = state.programs.find(x => x.id === courseId);
|
||||
console.log('index', index);
|
||||
index.verified = !index.verified;
|
||||
}
|
||||
};
|
||||
|
@ -1,9 +1,9 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_SPORT_CATEGORIES(state, data) {
|
||||
Vue.set(state, "sportCategories", data);
|
||||
SET_SPORT_CATEGORIES(state, payload) {
|
||||
Vue.set(state, "sportCategories", payload);
|
||||
},
|
||||
SET_SPORT_CATEGORY(state, data) {
|
||||
Vue.set(state, "sportCategory", data);
|
||||
SET_SPORT_CATEGORY(state, payload) {
|
||||
Vue.set(state, "sportCategory", payload);
|
||||
},
|
||||
};
|
||||
|
@ -0,0 +1,15 @@
|
||||
import UsersRepository from "@/abstraction/repository/usersRepository";
|
||||
export default {
|
||||
async loadUsers({ state, commit }) {
|
||||
let data = { pagination: state.pagination }
|
||||
let repository = new UsersRepository();
|
||||
const resource = await repository.index(data);
|
||||
commit("SET_USERS", resource.data);
|
||||
commit("SET_PAGINATION", resource.pagination);
|
||||
},
|
||||
async deleteUser({ commit }, userId) {
|
||||
let repository = new UsersRepository();
|
||||
await repository.delete(userId);
|
||||
commit('DELETE_USER', userId);
|
||||
},
|
||||
};
|
@ -0,0 +1,4 @@
|
||||
export default {
|
||||
getUsers: state => state.users,
|
||||
getPaginationUser: state => state.pagination
|
||||
};
|
@ -0,0 +1,15 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_USERS(state, payload) {
|
||||
Vue.set(state, "users", payload);
|
||||
},
|
||||
SET_PAGINATION(state, pagination) {
|
||||
pagination = { ...state.pagination, ...pagination };
|
||||
Vue.set(state, "pagination", pagination);
|
||||
},
|
||||
DELETE_USER(state, userId) {
|
||||
const index = state.users.findIndex((x) => x.id === userId);
|
||||
// state.users.splice(index, 1);
|
||||
Vue.delete(state.users, index)
|
||||
},
|
||||
};
|
@ -0,0 +1,6 @@
|
||||
export default {
|
||||
users: [],
|
||||
pagination: {
|
||||
itemsPerPage: 12
|
||||
}
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_WORKOUT_CATEGORIES(state, data) {
|
||||
Vue.set(state, "workoutCategories", data);
|
||||
SET_WORKOUT_CATEGORIES(state, payload) {
|
||||
Vue.set(state, "workoutCategories", payload);
|
||||
},
|
||||
|
||||
};
|
@ -0,0 +1,31 @@
|
||||
import WorkoutToSerieRepository from "../../../abstraction/repository/workoutToSerieRepository";
|
||||
export default {
|
||||
async loadWorkoutsToSerie({ state, commit }) {
|
||||
try {
|
||||
let data = { filters: state.filters };
|
||||
let repository = new WorkoutToSerieRepository();
|
||||
const resource = await repository.index(data);
|
||||
commit("SET_WORKOUTS_TO_SERIE", resource.data);
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
},
|
||||
async loadWorkoutToSerie({ commit }, workoutId) {
|
||||
let repository = new WorkoutToSerieRepository();
|
||||
const resource = await repository.show(workoutId);
|
||||
commit("SET_WORKOUT_TO_SERIE", resource);
|
||||
},
|
||||
async addWorkoutToSerie({ commit }, data) {
|
||||
let repository = new WorkoutToSerieRepository();
|
||||
const resource = await repository.store(data.data, data.serieId, data.workoutId);
|
||||
if (resource) {
|
||||
commit("ADD_WORKOUT_TO_SERIE", resource.data);
|
||||
return resource.data
|
||||
}
|
||||
},
|
||||
async deleteWorkoutFromSerie({ commit }, data) {
|
||||
let repository = new WorkoutToSerieRepository();
|
||||
await repository.delete(data);
|
||||
commit('DELETE_WORKOUT_FROM_SERIE', data.workoutId);
|
||||
},
|
||||
};
|
@ -0,0 +1,5 @@
|
||||
export default {
|
||||
getWorkoutsToSerie: state => state.workoutsToSerie,
|
||||
getWorkoutToSerie: state => state.workoutToSerie,
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_WORKOUTS_TO_SERIE(state, payload) {
|
||||
Vue.set(state, "workoutsToSerie", payload);
|
||||
},
|
||||
SET_WORKOUT_TO_SERIE(state, payload) {
|
||||
Vue.set(state, "workoutToSerie", payload);
|
||||
},
|
||||
SET_FILTER_WORKOUTS_TO_SERIE(state, payload) {
|
||||
Vue.set(state, "filters", payload);
|
||||
},
|
||||
ADD_WORKOUT_TO_SERIE(state, payload) {
|
||||
state.workoutsToSerie.push(payload);
|
||||
},
|
||||
DELETE_WORKOUT_FROM_SERIE(state, workoutId) {
|
||||
const index = state.workoutsToSerie.findIndex((x) => x.id === workoutId);
|
||||
Vue.delete(state.workoutsToSerie, index)
|
||||
},
|
||||
};
|
@ -0,0 +1,5 @@
|
||||
export default {
|
||||
workoutsToSerie: [],
|
||||
workoutToSerie: {},
|
||||
filters: {}
|
||||
};
|
@ -1,24 +1,24 @@
|
||||
import Vue from "vue";
|
||||
export default {
|
||||
SET_WORKOUTS(state, data) {
|
||||
Vue.set(state, "workouts", data);
|
||||
SET_WORKOUTS(state, payload) {
|
||||
Vue.set(state, "workouts", payload);
|
||||
},
|
||||
SET_WORKOUT(state, data) {
|
||||
Vue.set(state, "workout", data);
|
||||
SET_WORKOUT(state, payload) {
|
||||
Vue.set(state, "workout", payload);
|
||||
},
|
||||
SET_PAGINATION(state, pagination) {
|
||||
pagination = { ...state.pagination, ...pagination };
|
||||
Vue.set(state, "pagination", pagination);
|
||||
},
|
||||
ADD_WORKOUT(state, data) {
|
||||
state.workouts.push(data);
|
||||
ADD_WORKOUT(state, payload) {
|
||||
state.workouts.push(payload);
|
||||
},
|
||||
UPDATE_WORKOUT(state, data) {
|
||||
const index = state.workouts.findIndex((x) => x.id === data.id);
|
||||
Vue.set(state.workouts, index, data);
|
||||
UPDATE_WORKOUT(state, payload) {
|
||||
const index = state.workouts.findIndex((x) => x.id === payload.id);
|
||||
Vue.set(state.workouts, index, payload);
|
||||
},
|
||||
DELETE_WORKOUT(state, workoutId) {
|
||||
const index = state.workouts.findIndex((x) => x.id === workoutId);
|
||||
state.workouts.splice(index, 1);
|
||||
Vue.delete(state.workouts, index)
|
||||
},
|
||||
};
|
||||
|
Loading…
Reference in new issue