Files
eamco_office_api/app/query/views.py

94 lines
2.7 KiB
Python
Executable File

import logging
from app.query import query
from app import db
from app.common.responses import success_response
from app.classes.admin import Admin_Company
from app.classes.query import (Query_StateList,
Query_DeliveryStatusList,
Query_DeliveryStatusList_Schema,
Query_StateList_Schema,
Query_CustomerTypeList,
Query_CustomerTypeList_Schema,
Query_EmployeeTypeList,
Query_EmployeeTypeList_Schema)
from flask_login import login_required
logger = logging.getLogger(__name__)
@query.route("/company/<int:company_id>", methods=["GET"])
@login_required
def get_company(company_id):
"""
This will get the company from env variable
"""
logger.info(f"GET /query/company/{company_id} - Fetching company data")
query_data = (db.session
.query(Admin_Company)
.filter(Admin_Company.id == company_id)
.first())
delivery_schema = Query_DeliveryStatusList_Schema(many=False)
return success_response({"company": delivery_schema.dump(query_data)})
@query.route("/states", methods=["GET"])
@login_required
def get_state_list():
"""
This will get states
"""
logger.info("GET /query/states - Fetching state list")
query_data = db.session \
.query(Query_StateList) \
.all()
customer_schema = Query_StateList_Schema(many=True)
return success_response({"states": customer_schema.dump(query_data)})
@query.route("/customertype", methods=["GET"])
@login_required
def get_customer_type_list():
"""
This will get types of customers
"""
logger.info("GET /query/customertype - Fetching customer type list")
query_data = db.session \
.query(Query_CustomerTypeList) \
.all()
customer_schema = Query_CustomerTypeList_Schema(many=True)
return success_response({"customer_types": customer_schema.dump(query_data)})
@query.route("/employeetype", methods=["GET"])
@login_required
def get_employee_type_list():
"""
This will get types of service
"""
logger.info("GET /query/employeetype - Fetching employee type list")
query_data = db.session \
.query(Query_EmployeeTypeList) \
.all()
customer_schema = Query_EmployeeTypeList_Schema(many=True)
return success_response({"employee_types": customer_schema.dump(query_data)})
@query.route("/deliverystatus", methods=["GET"])
@login_required
def get_delivery_status_list():
"""
This will get delivery status
"""
logger.info("GET /query/deliverystatus - Fetching delivery status list")
query_data = db.session \
.query(Query_DeliveryStatusList) \
.all()
delivery_schema = Query_DeliveryStatusList_Schema(many=True)
return success_response({"delivery_statuses": delivery_schema.dump(query_data)})