def get_facilitytype(id): try: ft = db_session.query(FacilityType).filter(FacilityType.id == id).one() except NoResultFound: return record_notfound_envelop() else: return record_json_envelop(ft.to_dict())
def get_empextras_by_emp(id): try: q = db_session.query(EmployeeExtra).filter( EmployeeExtra.employee_id == id).one() except NoResultFound as e: return record_notfound_envelop() except Exception as e: return fatal_error_envelop() else: tr = { 'id': q.id, 'ref_name': q.ref_name if q.ref_name else '', 'ref_address': q.ref_address if q.ref_address else '', 'ref_contact_number': q.ref_contact_number if q.ref_contact_number else '', 'emp_father_name': q.emp_father_name if q.emp_father_name else '', 'emp_mother_name': q.emp_mother_name if q.emp_mother_name else '', 'emp_single': q.emp_single if q.emp_single else '', 'emp_wife_name': q.emp_wife_name if q.emp_wife_name else '', 'emp_num_of_children': q.emp_num_of_children if q.emp_num_of_children else '' } return record_json_envelop(tr)
def get_role_by_id(r_id): try: role = db_session.query(Role).filter(Role.id == r_id).one() except NoResultFound as e: return record_notfound_envelop() except Exception as e: return fatal_error_envelop() else: return record_json_envelop(role.to_dict())
def get_facility_(ft_id, f_id): try: ft = db_session.query(Facility).filter(Facility.id == f_id).one() except NoResultFound: return result_notfound_envelop() except Exception: return fatal_error_envelop() else: return record_json_envelop(ft.to_dict())
def get_agency(id): try: agency = db_session.query(Agency).filter(Agency.id == id).one() except NoResultFound: return record_notfound_envelop() except Exception: return fatal_envelop_error() else: return record_json_envelop(agency.to_dict())
def get_password_policy(): try: pol = db_session.query(PasswordPolicy).filter( PasswordPolicy.id == 1).one() except NoResultFound as e: return record_notfound_envelop() except Exception as e: return fatal_error_envelop() else: return record_json_envelop(pol.to_dict())
def get_division_position(id): try: dv = db_session.query(DivisionPosition).filter( DivisionPosition.id == id).one() except NoResultFound: return record_notfound_envelop() except Exception: return fatal_error_envelop() else: return record_json_envelop(dv.to_dict())
def get_employee_address(e_id, id): try: addresses = db_session.query(EmployeeAddress).filter( EmployeeAddress.id == id).one() except NoResultFound: return record_notfound_envelop() except Exception: return fatal_error_envelop() else: return record_json_envelop(addresses.to_dict())
def get_company_detail(): try: company = db_session.query(CompanyDetail).filter( CompanyDetail.id == 1).one() adict = company.to_dict() district = db_session.query(District).filter( District.id == int(company.district)).one() adict['district_name'] = district.display_name adict['province_name'] = district.province.display_name adict['region_name'] = district.province.region.display_name except NoResultFound as e: return record_notfound_envelop() except Exception as e: return fatal_error_envelop() else: return record_json_envelop(adict)
def register_user(): '''This view register the user by generating ht access token with the given role''' if request.args and request.args['action'] == 'register': #check if all key existst if not set( request.json.keys()) == {'user_name', 'password', 'role_id'}: return jsonify({'message': 'missing keys'}) #lower case the user_name if any( len(val.strip()) < 5 for val in request.json.values() if isinstance(val, str)): return jsonify({'message': 'Not adequate length of values'}) #lower case the user_name user_name = request.json['user_name'].strip().lower() role_id = request.json['role_id'] hashed_pass = hash_password(request.json['password'].encode()) #get the user access_token user_access_token = gen_access_token(role_id, user_name) user = User(user_name=user_name, password=hashed_pass, role_id=role_id, access_token=user_access_token.decode('utf-8')) try: db_session.add(user) db_session.commit() except IntegrityError as ie: #hadle the error here return record_exists_envelop() else: return jsonify({ 'message': 'user_added_successfully', 'access_token': user_access_token.decode('utf-8') }) elif request.args['action'] == 'login': if request.json: if not set(request.json.keys()) == {'user_name', 'password'}: return jsonify({'message': 'missing keys'}) else: return jsonify({'message': 'json object'}) user_name = request.json['user_name'] password = request.json['password'] #now hass the password hashed_pass = hash_password(password) #get the user from the users for the password and user name try: user = db_session.query(User).filter( User.user_name == user_name).one() if not user: return record_notfound_envelop('User doesn\'t exists') #if there is user check for the password if hashed_pass == user.password: return record_json_envelop({ 'access_token': user.access_token, 'activate': user.activate, 'role_id': user.role_id, 'permissions': user.role.to_dict() }) else: return record_notfound_envelop('Password doesn\'t match') except NoResultFound as e: return record_notfound_envelop('User doesn\'t exists') ###to register the user with the employee elif request.args['action'] == 'registeruserforemployee': if not request.args.get('e_id', None): return 'please send the e_id' e_id = int(request.args['e_id']) if not set( request.json.keys()) == {'user_name', 'password', 'role_id'}: return jsonify({'message': 'missing keys'}) #lower case the user_name if any( len(val.strip()) < 5 for val in request.json.values() if isinstance(val, str)): return jsonify({'message': 'Not adequate length of values'}) #lower case the user_name user_name = request.json['user_name'].strip().lower() role_id = request.json['role_id'] hashed_pass = hash_password(request.json['password'].encode()) #get the user access_token user_access_token = gen_access_token(role_id, user_name) user = User(user_name=user_name, password=hashed_pass, role_id=role_id, access_token=user_access_token.decode('utf-8')) try: emp = db_session.query(Employee).filter(Employee.id == e_id).one() db_session.add(user) emp.user = user db_session.add(emp) db_session.commit() except IntegrityError as ie: #hadle the error here return record_exists_envelop() except NoResultFound as e: return record_notfound_envelop() else: return jsonify({ 'message': 'user_added_successfully', 'access_token': user_access_token.decode('utf-8'), 'status': 'success' })
def get_employee(id): try: emp = db_session.query(Employee).filter(Employee.id == id).one() except NoResultFound as e: return record_notfound_envelop() except Exception as e: return fatal_error_envelop() else: return record_json_envelop({ 'first_name': emp.first_name if emp.first_name else '', 'middle_name': emp.middle_name if emp.middle_name else '', 'last_name': emp.last_name if emp.last_name else '', ##this is asdas 'current_sex': emp.current_sex if emp.current_sex else '', 'date_of_birth': str(emp.date_of_birth) if emp.date_of_birth else '', 'address_one': emp.address_one if emp.address_one else '', 'address_two': emp.address_two if emp.address_two else '', 'village': emp.village if emp.village else '', 'llg': emp.llg if emp.llg else '', 'district': emp.district if emp.district else '', 'province': emp.province if emp.province else '', 'region': emp.region if emp.region else '', 'country': emp.country if emp.country else '', 'email_address': emp.email_address if emp.email_address else '', 'contact_number': emp.contact_number if emp.contact_number else '', 'alt_contact_number': emp.alt_contact_number if emp.alt_contact_number else '', 'age': emp.age if emp.age else '', 'retirement_age': emp.retirement_age if emp.retirement_age else '', 'employement_number': emp.employement_number if emp.employement_number else '', 'salary_step': emp.salary_step if emp.salary_step else '', 'date_of_commencement': str(emp.date_of_commencement) if emp.date_of_commencement else '', 'contract_end_date': emp.contract_end_date if emp.contract_end_date else '', 'id': emp.id if emp.id else '', 'user_id': emp.user_id if emp.user_id else '', 'sex_at_birth': emp.sex_at_birth if emp.sex_at_birth else '', 'employee_type': emp.employee_type.display_name if emp.employee_type.display_name else '', 'employee_category': emp.employee_category.name if emp.employee_category.name else '', 'employee_position': emp.employee_position.emp_pos_title_display_name if emp.employee_position.emp_pos_title_display_name else '', 'employee_agency_id': emp.employee_agency_id if emp.employee_agency_id else '', 'employee_agency': emp.employee_agency.display_name if emp.employee_agency else '', 'employee_type_id': emp.employee_type_id if emp.employee_type_id else '', 'employee_position_id': emp.employee_position_id if emp.employee_position_id else '', 'employee_category_id': emp.employee_category_id if emp.employee_category_id else '', 'employee_status_id': emp.employee_status_id if emp.employee_status_id else '', 'salutation': emp.salutation if emp.salutation else '', 'other_name_one': emp.other_name_one if emp.other_name_one else '', 'other_name_two': emp.other_name_two if emp.other_name_two else '', 'other_name_three': emp.other_name_three if emp.other_name_three else '', 'maiden_name': emp.maiden_name if emp.maiden_name else '' })