diff --git a/src/abstraction/repository/authRepository.js b/src/abstraction/repository/authRepository.js index 71cdf0e..3dc30a3 100644 --- a/src/abstraction/repository/authRepository.js +++ b/src/abstraction/repository/authRepository.js @@ -7,6 +7,7 @@ export default class AuthRepository { let json = setData(data); let response = await axios.post(url("login"), json); if (response.status === 200) { + response.data.data.user.roles.map(x => console.log(x.name)); return getJson(response.data.data); } } diff --git a/src/abstraction/repository/roleRepository.js b/src/abstraction/repository/roleRepository.js new file mode 100644 index 0000000..39b62a5 --- /dev/null +++ b/src/abstraction/repository/roleRepository.js @@ -0,0 +1,19 @@ +import axios from "axios"; +import url from '@/router/url'; +import { setData, getArray } from '../resources/roleResource'; +import { getJson as getJsonUser } from '../resources/userResource' +export default class RoleRepository { + async index() { + let response = await axios.get(url('indexRoles')); + if (response.status === 200) { + return getArray(response.data) + } + } + async update(data) { + let json = setData(data); + let response = await axios.post(url("updateRoles", { user: data.userId }), json); + if (response.status === 201 || response.status === 200) { + return getJsonUser(response.data.data); + } + } +} \ No newline at end of file diff --git a/src/abstraction/resources/programResource.js b/src/abstraction/resources/programResource.js index a3b21d5..3c65b56 100644 --- a/src/abstraction/resources/programResource.js +++ b/src/abstraction/resources/programResource.js @@ -26,7 +26,8 @@ export const setData = (data, isUpdate = false) => { title: data.title, description: data.description, tags: data.tags, - batch_id: data.batch_id + batch_id: data.batch_id, + period: data.period }; if (isUpdate) { formData["_method"] = "put"; diff --git a/src/abstraction/resources/roleResource.js b/src/abstraction/resources/roleResource.js new file mode 100644 index 0000000..552e45f --- /dev/null +++ b/src/abstraction/resources/roleResource.js @@ -0,0 +1,13 @@ +export const getJson = data => ({ + id: data.id, + name: data.name, + permission: data.permission +}); + +export const getArray = ({ data }) => { + data = data.map(user => getJson(user)); + return { data }; +}; +export const setData = data => ({ + roles_id: data.roles_id +}) \ No newline at end of file diff --git a/src/abstraction/resources/userResource.js b/src/abstraction/resources/userResource.js index 0218193..44ac187 100644 --- a/src/abstraction/resources/userResource.js +++ b/src/abstraction/resources/userResource.js @@ -1,28 +1,33 @@ 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, - role: data.is_admin - ? "admin" - : data.is_trainer - ? "trainer" - : "trainee", - created_courses_count: data.created_courses_count, - joined_courses_count: data.joined_courses_count -}); +export const getJson = (data) => { + let role_ids = data.roles.map(x => x.id); + let type = ''; + let roles = data.roles.map(x => x.name); + roles.includes('manager') ? type = "admin" : roles.includes("trainer") && !roles.includes('manager') ? type = 'trainer' : "trainee" + !data.roles.length ? type = "trainee" : false; + return ({ + 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, + type: type, + role: data.roles, + role_ids: role_ids, + 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)); diff --git a/src/components/AddProgram/Main.vue b/src/components/AddProgram/Main.vue index 7666952..13e5d3b 100644 --- a/src/components/AddProgram/Main.vue +++ b/src/components/AddProgram/Main.vue @@ -37,6 +37,17 @@ > + + + -
+
-
+
@@ -79,9 +79,9 @@
-
+
-
+
@@ -145,9 +145,9 @@
-
+
-
+
@@ -227,7 +227,7 @@ export default { Notification, }, data: () => ({ - role: UserStorage.get() ? UserStorage.get().role : null, + type: UserStorage.get() ? UserStorage.get().type : null, statistics: {}, }), methods: { diff --git a/src/components/Global/Section/SideBar.vue b/src/components/Global/Section/SideBar.vue index bbe1d85..b382ae1 100644 --- a/src/components/Global/Section/SideBar.vue +++ b/src/components/Global/Section/SideBar.vue @@ -3,27 +3,32 @@
    -