first commit
This commit is contained in:
176
app/employees/views.py
Normal file
176
app/employees/views.py
Normal file
@@ -0,0 +1,176 @@
|
||||
from flask import request, jsonify
|
||||
from flask_login import current_user
|
||||
from sqlalchemy import or_
|
||||
from datetime import date, timedelta
|
||||
from flask_login import login_required
|
||||
from app.employees import employees
|
||||
from app import db
|
||||
from datetime import datetime
|
||||
from app.classes.employee import Employee_Employee, Employee_Employee_schema
|
||||
|
||||
|
||||
@employees.route("/<int:userid>", methods=["GET"])
|
||||
@login_required
|
||||
def get_specific_employee(userid):
|
||||
employee = db.session \
|
||||
.query(Employee_Employee) \
|
||||
.filter(Employee_Employee.id == userid) \
|
||||
.first()
|
||||
employee_schema = Employee_Employee_schema(many=False)
|
||||
return jsonify(employee_schema.dump(employee))
|
||||
|
||||
|
||||
@employees.route("/userid/<int:userid>", methods=["GET"])
|
||||
@login_required
|
||||
def get_specific_employee_user_id(userid):
|
||||
employee = db.session \
|
||||
.query(Employee_Employee) \
|
||||
.filter(Employee_Employee.user_id == userid) \
|
||||
.first()
|
||||
# print(employee.id)
|
||||
employee_schema = Employee_Employee_schema(many=False)
|
||||
return jsonify(employee_schema.dump(employee))
|
||||
|
||||
|
||||
@employees.route("/all/<int:page>", methods=["GET"])
|
||||
@login_required
|
||||
def all_employees_paginated(page):
|
||||
"""
|
||||
pagination all employees
|
||||
"""
|
||||
per_page_amount = 50
|
||||
if page is None:
|
||||
offset_limit = 0
|
||||
elif page == 1:
|
||||
offset_limit = 0
|
||||
else:
|
||||
offset_limit = (per_page_amount * page) - per_page_amount
|
||||
|
||||
employee_list = (db.session
|
||||
.query(Employee_Employee) \
|
||||
.limit(per_page_amount).offset(offset_limit))
|
||||
|
||||
employee_schema = Employee_Employee_schema(many=True)
|
||||
return jsonify(employee_schema.dump(employee_list))
|
||||
|
||||
|
||||
@employees.route("/all", methods=["GET"])
|
||||
@login_required
|
||||
def all_employees():
|
||||
employee_list = db.session \
|
||||
.query(Employee_Employee) \
|
||||
.all()
|
||||
customer_schema = Employee_Employee_schema(many=True)
|
||||
return jsonify(customer_schema.dump(employee_list))
|
||||
|
||||
|
||||
@employees.route("/drivers", methods=["GET"])
|
||||
@login_required
|
||||
def all_employees_drivers():
|
||||
employee_list = db.session \
|
||||
.query(Employee_Employee) \
|
||||
.filter(Employee_Employee.employee_type == 4) \
|
||||
.all()
|
||||
customer_schema = Employee_Employee_schema(mwany=True)
|
||||
return jsonify(customer_schema.dump(employee_list))
|
||||
|
||||
|
||||
@employees.route("/techs", methods=["GET"])
|
||||
@login_required
|
||||
def all_employees_techs():
|
||||
employee_list = db.session \
|
||||
.query(Employee_Employee) \
|
||||
.filter(or_(Employee_Employee.employee_type == 0,
|
||||
Employee_Employee.employee_type == 1,
|
||||
Employee_Employee.employee_type == 5,
|
||||
Employee_Employee.employee_type == 8,
|
||||
)) \
|
||||
.all()
|
||||
customer_schema = Employee_Employee_schema(many=True)
|
||||
return jsonify(customer_schema.dump(employee_list))
|
||||
|
||||
|
||||
@employees.route("/create", methods=["POST"])
|
||||
@login_required
|
||||
def employee_create():
|
||||
"""
|
||||
This will create an employee
|
||||
"""
|
||||
e_last_name = request.json["employee_last_name"]
|
||||
e_first_name = request.json["employee_first_name"]
|
||||
e_town = request.json["employee_town"]
|
||||
e_state = request.json["employee_state"]
|
||||
e_address = request.json["employee_address"]
|
||||
e_zip = request.json["employee_zip"]
|
||||
e_birthday = request.json["employee_birthday"]
|
||||
e_type = request.json["employee_type"]
|
||||
e_start_date = request.json["employee_start_date"]
|
||||
e_end_date = request.json["employee_end_date"]
|
||||
e_phone_number = request.json["employee_phone_number"]
|
||||
|
||||
emp_state = int(e_state)
|
||||
emp_type = int(e_type)
|
||||
emp_zip = int(e_zip)
|
||||
|
||||
if e_end_date == '':
|
||||
e_end_date = None
|
||||
|
||||
new_employee = Employee_Employee(
|
||||
|
||||
employee_last_name=e_last_name,
|
||||
employee_first_name=e_first_name,
|
||||
employee_town=e_town,
|
||||
employee_state=emp_state,
|
||||
employee_zip=emp_zip,
|
||||
employee_address=e_address,
|
||||
employee_birthday=e_birthday,
|
||||
employee_type=emp_type,
|
||||
employee_start_date=e_start_date,
|
||||
employee_end_date=e_end_date,
|
||||
employee_phone_number=e_phone_number,
|
||||
)
|
||||
|
||||
db.session.add(new_employee)
|
||||
db.session.commit()
|
||||
|
||||
return jsonify({"ok": True,
|
||||
'user_id': new_employee.id,
|
||||
}), 200
|
||||
|
||||
|
||||
@employees.route("/edit/<int:employee_id>", methods=["POST"])
|
||||
def employee_edit(employee_id):
|
||||
"""
|
||||
This will update an employee
|
||||
"""
|
||||
e_last_name = request.json["employee_last_name"]
|
||||
e_first_name = request.json["employee_first_name"]
|
||||
e_town = request.json["employee_town"]
|
||||
e_state = request.json["employee_state"]
|
||||
e_zip = request.json["employee_zip"]
|
||||
e_birthday = request.json["employee_birthday"]
|
||||
e_type = request.json["employee_type"]
|
||||
e_start_date = request.json["employee_start_date"]
|
||||
e_end_date = request.json["employee_end_date"]
|
||||
print(request.json["employee_end_date"])
|
||||
|
||||
get_employee = db.session \
|
||||
.query(Employee_Employee) \
|
||||
.filter(Employee_Employee.id == employee_id) \
|
||||
.first()
|
||||
|
||||
get_employee.employee_first_name = e_first_name
|
||||
get_employee.employee_last_name = e_last_name
|
||||
get_employee.employee_town = e_town
|
||||
get_employee.employee_state = e_state
|
||||
get_employee.employee_zip = e_zip
|
||||
get_employee.employee_birthday = e_birthday
|
||||
get_employee.employee_type = e_type
|
||||
get_employee.employee_start_date = e_start_date
|
||||
if e_end_date != 'None':
|
||||
get_employee.employee_end_date = e_end_date
|
||||
|
||||
db.session.add(get_employee)
|
||||
db.session.commit()
|
||||
|
||||
return jsonify({"ok": True}), 200
|
||||
Reference in New Issue
Block a user