+
{{ $t('usersListPage.tableHeader') }}
diff --git a/src/modules/employee-list/services/services-employee-list.ts b/src/modules/employee-list/services/services-employee-list.ts
index 0bffad4..cc36b98 100644
--- a/src/modules/employee-list/services/services-employee-list.ts
+++ b/src/modules/employee-list/services/services-employee-list.ts
@@ -1,43 +1,17 @@
// /* eslint-disable */
import { api } from 'src/boot/axios';
import type { EmployeeListTableItem } from '../types/employee-list-table-interface';
+import type { EmployeeProfile } from '../types/employee-profile-interface';
+
export const EmployeeListService = {
getEmployeeList: async (): Promise => {
- const res = await api.get('/employees/employee-list');
- console.log('response from backend: ', res.data);
- return res.data;
- }
-};
+ const response = await api.get('/employees/employee-list')
+ return response.data;
+ },
-// export const AuthService = {
-// // Will likely be deprecated and relegated to Authentik
-// login: () => {
-// //TODO: OIDC customer sign-in, eventually
-// },
-
-// oidcLogin: (): Window | null => {
-// window.addEventListener('message', (event) => {
-// if (event.data.type === 'authSuccess') {
-// //some kind of logic here to set user in store
-// }
-// })
-
-// return window.open('http://localhost:3000/auth/v1/login', 'authPopup', 'width=600,height=800');
-// },
-
-// logout: () => {
-// // TODO: logout logic
-// api.post('/auth/logout')
-// },
-
-// refreshToken: () => {
-// // TODO: token refresh logic
-// api.post('/auth/refresh')
-// },
-
-// getProfile: () => {
-// // TODO: user info fetch logic
-// api.get('/auth/me')
-// },
-// };
+ getEmployeeDetails: async (email: string): Promise => {
+ const response = await api.get('employees/profile/' + email);
+ return response.data;
+ },
+};
\ No newline at end of file
diff --git a/src/modules/employee-list/types/employee-profile-interface.ts b/src/modules/employee-list/types/employee-profile-interface.ts
index 88b1caf..9285c85 100644
--- a/src/modules/employee-list/types/employee-profile-interface.ts
+++ b/src/modules/employee-list/types/employee-profile-interface.ts
@@ -1,12 +1,12 @@
export interface EmployeeProfile {
first_name: string;
last_name: string;
+ supervisor_full_name: string;
+ company_name: number;
+ job_title: string;
email: string;
phone_number: number;
- role: string;
- job_title: string;
- company_code: number;
- residence: string;
first_work_day: string;
last_work_day: string;
+ residence: string;
}
\ No newline at end of file
diff --git a/src/stores/employee-store.ts b/src/stores/employee-store.ts
index a3abe11..61394e9 100644
--- a/src/stores/employee-store.ts
+++ b/src/stores/employee-store.ts
@@ -1,21 +1,41 @@
import { ref } from "vue";
import { defineStore } from "pinia";
-import type { EmployeeListTableItem } from "src/modules/employee-list/types/employee-list-table-interface";
import { EmployeeListService } from "src/modules/employee-list/services/services-employee-list";
+import type { EmployeeProfile } from "src/modules/employee-list/types/employee-profile-interface";
+import type { EmployeeListTableItem } from "src/modules/employee-list/types/employee-list-table-interface";
export const useEmployeeStore = defineStore('employee', () => {
- const employee = ref ({});
+ const employee = ref();
const employeeList = ref([]);
+ const isShowingEmployeeAddModifyWindow = ref(false);
+ const isLoadingEmployeeProfile = ref(false);
+ const isLoadingEmployeeList = ref(false);
const getEmployeeList = async () => {
- const response = await EmployeeListService.getEmployeeList().catch(err => {
- console.log("Ran into an error fetching employee list: ", err);
- return [] as EmployeeListTableItem[];
- });
-
- employeeList.value = response;
+ isLoadingEmployeeList.value = true;
+ try {
+ const response = await EmployeeListService.getEmployeeList();
+ employeeList.value = response;
+ } catch (error) {
+ console.error("Ran into an error fetching employee list: ", error);
+ //TODO: trigger an alert window with an error message here!
+ }
+ isLoadingEmployeeList.value = false;
};
- return { employee, employeeList, getEmployeeList };
+ const getEmployeeDetails = async (email: string) => {
+ isLoadingEmployeeProfile.value = true;
+ try {
+ const response = await EmployeeListService.getEmployeeDetails(email);
+ employee.value = response;
+
+ } catch (error) {
+ console.error('There was an error retrieving employee info: ', error);
+ //TODO: trigger an alert window with an error message here!
+ }
+ isLoadingEmployeeProfile.value = false;
+ };
+
+ return { employee, employeeList, isShowingEmployeeAddModifyWindow, isLoadingEmployeeList, isLoadingEmployeeProfile, getEmployeeList, getEmployeeDetails };
});