def delete_job(company_id): """DECLINE JOB REQUEST""" if check_user_type(current_user.id) != 'employee': abort(401) if request.method == 'POST': job_delete_url = f"{API_URL}/employees/\ {current_user.id}/companies?company_id={company_id}" delete_job = requests.delete(job_delete_url) return redirect(url_for('employee.dashboard'))
def delete_user(): """Delete user""" if check_user_type(current_user.id) != 'company': abort(401) if request.method == 'POST': delete_user = requests.delete(f"{API_URL}/companies/{current_user.id}") if delete_user.status_code == 204: logout_user() flash("Sad to see you go :(", category='flash-error') return redirect(url_for('login')) return redirect(url_for('company.profile'))
def delete_employee(employee_id): """DELETE EMPLOYEE FROM EMPLOYEE's LIST""" if check_user_type(current_user.id) != 'company': abort(401) if request.method == 'POST': employee_delete_url = f"{API_URL}/companies/\ {current_user.id}/employees?employee_id={employee_id}" delete_employee = requests.delete(employee_delete_url) return redirect(url_for('company.dashboard'))
def employee_calendars(employee_id): """All of employees calendar for company""" if check_user_type(current_user.id) != 'company': abort(401) if employee_id == 'DELETED': return redirect(url_for('company.company_calendars')) employee_calendars = requests.get(f"{API_URL}/calendars/companies/\ {current_user.id}/employees/{employee_id}") calendars = employee_calendars.json()[1]['data'] employee = requests.get(f"{API_URL}/employees/{employee_id}") return render_template('company_calendars.html', calendars=calendars, employee=employee.json())
def employee_calendars(): """ALL calendars related to current user""" if check_user_type(current_user.id) != 'employee': abort(401) request_calendars = requests.get( f'{API_URL}/calendars/employees/{current_user.id}') calendars = request_calendars.json()[1]['data'] for calendar in calendars: request_company = requests.get(calendar['links'][1]['href']) if request_company.status_code == 404: calendar['company_name'] = 'DELETED' calendar['company_id'] = 'DELETED' if request_company.status_code == 200: calendar['company_name'] = request_company.json()['company_name'] calendar['company_id'] = request_company.json()['_id'] return render_template('employee_calendars.html', calendars=calendars)
def job_offer(company_id, status): """DECLINE JOB REQUEST""" if check_user_type(current_user.id) != 'employee': abort(401) if request.method == 'POST': job_decline_url = f"{API_URL}/employees/\ {current_user.id}/companies?company_id={company_id}&status=decline" job_accept_url = f"{API_URL}/employees/\ {current_user.id}/companies?company_id={company_id}&status=accept" if status == 'decline': decline_job = requests.put(job_decline_url) if status == 'accept': accept_job = requests.put(job_accept_url) return redirect(url_for('employee.dashboard'))
def company_calendars(): """All calendars for company""" if check_user_type(current_user.id) != 'company': abort(401) request_calendars = requests.get( f'{API_URL}/calendars/companies/{current_user.id}') calendars = request_calendars.json()[1]['data'] for calendar in calendars: request_employee = requests.get(calendar['links'][0]['href']) if request_employee.status_code == 404: calendar['employee_name'] = 'DELETED' calendar['employee_id'] = 'DELETED' if request_employee.status_code == 200: calendar['employee_name'] = request_employee.json()['first_name']\ + " " + request_employee.json()['last_name'] calendar['employee_id'] = request_employee.json()['_id'] return render_template('company_employee_calendar.html', calendars=calendars)
def dashboard(): if check_user_type(current_user.id) != 'employee': abort(401) """Get current user from API""" employee = requests.get(f"{API_URL}/employees/{current_user.id}") """Employee job offers""" pending_requests = employee.json()['pending_requests'] company_offers = [] for company_id in pending_requests: company = requests.get(f"{API_URL}/companies/{company_id}") company_offers.append(company.json()) """companies employee work for""" companies_work = requests.get( f"{API_URL}/employees/{current_user.id}/companies") companies = companies_work.json()[1:] return render_template('employee_dashboard.html', title='Dashboard', company_offers=company_offers, companies=companies)
def dashboard(): """Check is current user is of type company""" if check_user_type(current_user.id) != 'company': abort(401) form = Email() """Get current user from API""" company = requests.get(f"{API_URL}/companies/{current_user.id}") """Employees working for company""" employees_work = requests.get( f"{API_URL}/companies/{current_user.id}/employees") employees = employees_work.json()[1:] if request.method == "POST": if form.validate_on_submit(): _employee = requests.get( f"{API_URL}/employee?email={form.email.data}") if _employee.status_code == 200: employee_id = _employee.json()['employee']['id'] add_employee = requests.put( f"{API_URL}/companies/{current_user.id}/\ employees?employee_id={employee_id}") if add_employee.status_code == 400: flash("Employee already in company", category='flash-error') return redirect(url_for('company.dashboard')) if add_employee.status_code == 200: flash("Request sent successfully", category='flash-success') return redirect(url_for('company.dashboard')) else: flash("Employee doesn't exist", category='flash-error') return redirect(url_for('company.dashboard')) return render_template('company_dashboard.html', employees=employees, form=form)
def profile(): """Profile""" if check_user_type(current_user.id) != 'company': abort(401) form = Password() """Get current user from API""" company = requests.get(f"{API_URL}/companies/{current_user.id}") if request.method == 'POST': if form.validate_on_submit(): pwd = requests.put(f"{API_URL}/companies/{current_user.id}", json={'password': form.password.data}) if pwd.status_code == 200: flash("Password Changed successfully", category='flash-success') else: flash("Something Went Wromg", category='flash-error') else: flash("Passwords don't validate", category='flash-error') return redirect(url_for('company.profile')) return render_template('company_profile.html', form=form, company=company.json())
def company_calendars(company_id): """Employee calendars given company_id""" if check_user_type(current_user.id) != 'employee': abort(401) if company_id == 'DELETED': return redirect(url_for('employee.employee_calendars')) """Current calendar""" current_calendar = requests.put(f"{API_URL}/calendars/companies/\ {company_id}/employees/{current_user.id}/current") """All of employees calendar for company""" company_calendars = requests.get(f"{API_URL}/calendars/companies/\ {company_id}/employees/{current_user.id}") form = Calendar() current_calendar = company_calendars.json()[1]['data'][-1] if request.method == 'POST': """Current calendar""" print(form.schema()) if form.validate_on_submit(): update_current_calendar = requests.put( f"{API_URL}/calendars/companies/{company_id}/employees/\ {current_user.id}/current", json=form.schema()) return redirect( url_for('employee.company_calendars', company_id=company_id)) # SUN form.SUN_HOUR.default = current_calendar['sunday']['hours'] form.SUN_LOCAL.default = current_calendar['sunday']['location'] form.SUN_DESCRIPTION.default = current_calendar['sunday']['description'] # MON form.MON_HOUR.default = current_calendar['monday']['hours'] form.MON_LOCAL.default = current_calendar['monday']['location'] form.MON_DESCRIPTION.default = current_calendar['monday']['description'] # TUE form.TUE_HOUR.default = current_calendar['tuesday']['hours'] form.TUE_LOCAL.default = current_calendar['tuesday']['location'] form.TUE_DESCRIPTION.default = current_calendar['tuesday']['description'] # WED form.WED_HOUR.default = current_calendar['wednesday']['hours'] form.WED_LOCAL.default = current_calendar['wednesday']['location'] form.WED_DESCRIPTION.default = current_calendar['wednesday']['description'] # THU form.THU_HOUR.default = current_calendar['thursday']['hours'] form.THU_LOCAL.default = current_calendar['thursday']['location'] form.THU_DESCRIPTION.default = current_calendar['thursday']['description'] # FRI form.FRI_HOUR.default = current_calendar['friday']['hours'] form.FRI_LOCAL.default = current_calendar['friday']['location'] form.FRI_DESCRIPTION.default = current_calendar['friday']['description'] # SAT form.SAT_HOUR.default = current_calendar['saturday']['hours'] form.SAT_LOCAL.default = current_calendar['saturday']['location'] form.SAT_DESCRIPTION.default = current_calendar['saturday']['description'] form.process() calendars = company_calendars.json()[1]['data'][:-1] last_calendar = company_calendars.json()[1]['data'].pop() company = requests.get(f'{API_URL}/companies/{company_id}') return render_template('employee_company_calendar.html', form=form, calendars=calendars, company_id=company_id, current_calendar=last_calendar, company=company.json())