import EmployeeActionTypes from "./employee.types"; import { employeeSignInStart, employeeSignInSuccess, employeeSignInFailure, employeeGetRatesStart, employeeGetRatesSuccess, employeeGetRatesFailure } from "./employee.actions"; import { all, call, put, select, takeLatest } from "redux-saga/effects"; import { logImEXEvent } from "../../firebase/firebase.analytics"; import { selectBodyshop } from "../user/user.selectors"; import axios from "axios"; import { client } from "../../graphql/client"; export function* onSignInEmployeeStart() { yield takeLatest( EmployeeActionTypes.EMPLOYEE_SIGN_IN_START, signInWithEmployeeId ); } export function* signInWithEmployeeId({ payload: { employeeId, pin } }) { try { logImEXEvent("redux_sign_in_employee_attempt"); //console.loging // console.log("Saga", employeeId, pin, pin); const bodyshop = yield select(selectBodyshop); const response = yield call(axios.post, "/tech/login", { shopid: bodyshop.id, employeeid: employeeId, pin: pin, }); const { valid, technician, error } = response.data; if (valid) { yield put(employeeSignInSuccess(technician)); } else { yield put(employeeSignInFailure(error)); } } catch (error) { yield put(employeeSignInFailure(error)); } } export function* onEmployeeGetRatesStart() { yield takeLatest( EmployeeActionTypes.EMPLOYEE_GET_RATES_START, getRatesWithEmployeeId ); } export function* getRatesWithEmployeeId({ payload }) { try { const response = yield client.query({ query: QUERY_EMPLOYEE_BY_ID, variables: { id: payload.id, } }); logImEXEvent("redux_employee_get_rates_attempt", payload); const { valid, technician, error } = response.data; if (valid) { yield put(employeeGetRatesSuccess(technician)); } else { yield put(employeeGetRatesFailure(error)); } } catch (error) { yield put(employeeGetRatesFailure(error)); console.log("Error while getting employee rates.", error); Sentry.Native.captureException(error); } } export function* employeeSagas() { yield all([call(onSignInEmployeeStart), call(employeeGetRatesSuccess)]); }