コード例 #1
0
 def delete(self, employee_id):
     employee = EmployeeModel.find_by_id(employee_id)
     if employee:
         employee.delete_from_db()
         return {"msg": "Employee with ID {a} was deleted".format(a=employee_id)}, 200
     else:
         return {"msg": "Employee with ID {a} was not found".format(a=employee_id)}, 400
コード例 #2
0
ファイル: attendance.py プロジェクト: wanderindev/hr-rest-api
    def find_all(cls, user, employee_id):
        from models.employee import EmployeeModel

        records = cls.query.filter_by(employee_id=employee_id).all()

        if records and EmployeeModel.find_by_id(employee_id, user):
            return records
コード例 #3
0
    def put(employee_id):
        """Update employee"""
        data = parser.parse_args()
        first_name = data['first_name']
        second_name = data['second_name']
        username = data['username']

        if first_name is None and second_name is None and username is None:
            api.abort(400, 'You need to specify minimum one parameter')

        employee = EmployeeModel.find_by_id(employee_id)
        if employee is not None:
            if first_name is not None:
                employee.first_name = first_name
            if second_name is not None:
                employee.second_name = second_name
            if username is not None:
                if EmployeeModel.find_by_username(username) is not None:
                    api.abort(400, f'Employee {username} already exist')
                employee.username = username
            try:
                employee.save_employee()
            except:
                api.abort(500, 'Failed to update employee')
            return employee
        api.abort(404, f'Employee {employee_id} does not exist')
コード例 #4
0
    def delete(self, id):
        emp = EmployeeModel.find_by_id(id)
        if not emp:
            return {'message': 'Employee not found!! :( '}

        emp.delete_from_db()
        return {'message': 'Employee is deleted successfully!! :) '}
コード例 #5
0
 def get(self, _id=None):
     if not _id:
         return {'message': 'Route Parameter _id is missing'}, 400
     employee = EmployeeModel.find_by_id(_id)
     if employee:
         return employee.json()
     return {'message': 'Employee not found'}, 404
コード例 #6
0
    def find_by_id(cls, _id, user):
        from models.employee import EmployeeModel

        e_cont = cls.query.filter_by(id=_id).first()

        if e_cont:
            if EmployeeModel.find_by_id(e_cont.employee_id, user):
                return e_cont
コード例 #7
0
ファイル: attendance.py プロジェクト: wanderindev/hr-rest-api
    def find_by_id(cls, _id, user):
        from models.employee import EmployeeModel

        record = cls.query.filter_by(id=_id).first()

        if record:
            if EmployeeModel.find_by_id(record.employee_id, user):
                return record
コード例 #8
0
def test_save_employee(app):
    with app.app_context():
        employee = EmployeeModel(first_name='test',
                                 second_name='test2',
                                 username='******')
        employee.save_employee()

        employee_db = EmployeeModel.find_by_id(employee.id)
        assert employee_db is not None
コード例 #9
0
    def find_by_id(cls, _id, user):
        from models.employee import EmployeeModel
        from models.uniform_item import UniformItemModel

        record = cls.query.filter_by(id=_id).first()

        if record:
            if UniformItemModel.find_by_id(record.uniform_item_id, user) and \
                    EmployeeModel.find_by_id(record.employee_id, user):
                return record
コード例 #10
0
def test_delete_employee(app):
    with app.app_context():
        employee = EmployeeModel(first_name='test',
                                 second_name='test2',
                                 username='******')
        db.session.add(employee)
        db.session.commit()
        employee.delete_employee()

        employee_db = EmployeeModel.find_by_id(employee.id)
        assert employee_db is None
コード例 #11
0
    def put(self, _id):
        data = Employee.parse.parse_args()

        employee = EmployeeModel.find_by_id(_id)
        if employee is None:
            employee = EmployeeModel(_id, data['name'], data['title'])
        else:
            employee.name = data['name']
            employee.title = data['title']
        employee.save_to_db()
        return employee.json()
コード例 #12
0
    def post(self, id):
        edata = parser.parse_args()

        e = EmployeeModel.find_by_id(id)
        if e:
            return {'message': 'Employee already present!!'}

        emp = EmployeeModel(id, edata['emp_name'], edata['city'])

        emp.save_to_db()

        return {'message': 'Employee successfully added'}
コード例 #13
0
def test_find_by_id(app):
    with app.app_context():
        employee = EmployeeModel(first_name='test',
                                 second_name='test2',
                                 username='******')
        db.session.add(employee)
        db.session.commit()

        employee_db = EmployeeModel.find_by_id(employee.id)
        assert employee_db.first_name == employee.first_name
        assert employee_db.second_name == employee.second_name
        assert employee_db.username == employee.username
        assert employee_db.id == employee.id
コード例 #14
0
    def delete(self, _id=None):
        if not _id:
            return {'message': 'Route Parameter _id is missing'}, 400

        employee = EmployeeModel.find_by_id(_id)
        if not employee:
            return {'message': 'Employee not found'}, 404

        try:
            employee.delete()
        except:
            return {'message': 'An Error Occured while deleting'}, 500
        return {'message': 'Employee Deleted'}
コード例 #15
0
    def delete(employee_id):
        """Delete employee"""
        employee = EmployeeModel.find_by_id(employee_id)
        used_hardware = UsedHardwareModel.find_by_employee_id(employee_id)

        # First unlink all hardware, then delete
        if used_hardware:
            UsedHardwareModel.delete_links(employee_id)

        if employee is not None:
            employee.delete_employee()
            return employee
        api.abort(404, f'Employee {employee_id} does not exist')
コード例 #16
0
    def post(self, employee_id):
        employee = EmployeeModel.find_by_id(employee_id)
        if employee:
            return {"msg": "An Employee with id {a} already exists".format(a=employee_id)}, 400

        data = self.parser.parse_args()
        new_employee = EmployeeModel(employee_id, **data)
        new_employee.fullname = new_employee.firstname.strip() + " " + new_employee.lastname.strip()
        try:
            new_employee.save_to_db()
        except:
            return {"msg": "An error occurred adding the Employee"}, 500

        return new_employee.json(), 201
コード例 #17
0
    def put(self, id):
        emp = EmployeeModel.find_by_id(id)

        edata = parser.parse_args()

        if not emp:
            emp = EmployeeModel(id, edata['emp_name'], edata['city'])
            emp.save_to_db()
            return {'message': 'New Employee added successfully'}

        else:
            emp.emp_name = edata['emp_name']
            emp.city = edata['city']
            emp.save_to_db()
            return {'message': 'Employee updated successfully'}
コード例 #18
0
    def put(self, employee_id):
        data = self.parser.parse_args()

        employee = EmployeeModel.find_by_id(employee_id)

        if employee is None:
            employee = EmployeeModel(employee_id, **data)

        else:
            employee.delete_from_db()  # delete first if find record
            employee = {k: v for k, v in data.items()}
            employee = EmployeeModel(employee_id, **employee)

        employee.save_to_db()
        return employee.json()
コード例 #19
0
    def delete(self, _id):
        user = EmployeeModel.find_by_id(_id)
        if user:
            try:
                user.delete_from_db()
            except:
                return {
                    "message": "An error occurred while deleting this user."
                }, 500

            return {'message': 'User deleted.'}

        return {
            'message': "The user you're trying to delete doesn't exist."
        }, 400
コード例 #20
0
    def post(self, _id):

        if EmployeeModel.find_by_id(_id):
            return {
                'message': "Employee with id '{}' already exists.".format(_id)
            }, 400

        data = Employee.parse.parse_args()

        employee = EmployeeModel(_id, data['name'], data['title'])

        try:
            employee.save_to_db()
        except:
            return {
                'message': "An error occured while inserting an employee"
            }, 500

        return employee.json(), 201
コード例 #21
0
    def put(self, _id=None):
        if not _id:
            return {'message': 'Route Parameter _id is missing'}, 400

        data = Employee.parser.parse_args()
        employee = EmployeeModel.find_by_id(_id)

        if not employee:
            return {'message': 'Employee not found'}, 404

        if employee:
            employee.name = data['name']
            employee.status = data['status']
            employee.date = datetime.strptime(data['date'], '%Y-%m-%d').date()

        try:
            employee.save()
        except:
            return {'message': 'An Error Occured while updating'}, 500
        return employee.json()
コード例 #22
0
    def put(hardware_id):
        """Update employee linked to hardware"""
        data = parser_used.parse_args()
        employee_id = data['employee_id']

        employee = EmployeeModel.find_by_id(employee_id)
        if employee is None:
            api.abort(400, f'Employee {employee_id} does not exist')

        hardware = UsedHardwareModel.find_by_hardware_id(hardware_id)
        if hardware is not None:
            hardware.employee_id = employee_id
            try:
                hardware.save_link()
            except:
                api.abort(500, 'Failed to update employee')
            return hardware
        api.abort(
            400,
            f'Hardware {hardware_id} is not in use and cannot by modified')
コード例 #23
0
    def put(self, _id):
        data = self.parser.parse_args()
        user = EmployeeModel.find_by_id(_id)
        if user:
            user.first_name = data[
                "first_name"]  # if data["first_name"] else user.first_name
            user.middle_name = data["middle_name"]
            user.last_name = data["last_name"]
            user.email = data["email"]
            user.phone_No_1 = data["phone_No_1"]
            user.phone_No_2 = data["phone_No_2"]
            user.phone_No_3 = data["phone_No_3"]
        else:
            valid_data = {
                key: val
                for key, val in data.items() if val is not None
            }
            user = EmployeeModel(**valid_data)

        user.save_to_db()
        return user.json()
コード例 #24
0
    def post(hardware_id):
        """Link hardware with employee"""
        data = parser_used.parse_args()
        data['hardware_id'] = hardware_id
        employee_id = data['employee_id']

        if HardwareModel.find_by_id(hardware_id) is None:
            api.abort(400, f'Hardware {hardware_id} does not exist')

        if EmployeeModel.find_by_id(employee_id) is None:
            api.abort(400, f'Employee {employee_id} does not exist')

        if UsedHardwareModel.find_by_hardware_id(hardware_id) is not None:
            api.abort(400, f'Hardware {hardware_id} already in use')

        hardware = UsedHardwareModel(**data)
        try:
            hardware.save_link()
        except:
            api.abort(500, 'Failed to link hardware')

        return hardware
コード例 #25
0
    def get(self, employee_id):
        employee = EmployeeModel.find_by_id(employee_id)

        if employee:
            temp = employee.json_ts()
            metrics = employee.json()
            temp_ts = temp["employee_ts"]
            to_return = {
                "code": 0,
                "result": {
                    "page": 1,
                    "page_size": 10,
                    "total_count": len(temp_ts),
                    "page_count": math.ceil(len(temp_ts) / 10),
                    "employee_id": temp["employee_id"],
                    "firstname": temp["firstname"],
                    "lastname": temp["lastname"],
                    "prod_hours": metrics["prod_hours"],
                    "prod_hours_max": 3000,
                    "sales": metrics["sales"],
                    "sales_max": 800,
                    "avg_speed_answer": metrics["avg_speed_answer"],
                    "avg_speed_answer_max": 15,
                    "avg_handle": metrics["avg_handle"],
                    "avg_handle_max": 10,
                    "first_call_resolution": metrics["first_call_resolution"],
                    "first_call_resolution_max": 1,
                    "customer_satisfaction": metrics["customer_satisfaction"],
                    "customer_satisfaction_max": 5,
                    "ratings": metrics["ratings"],
                    "ratings_max": 5,
                    "data_list": temp_ts
                }
            }
            return to_return
        return {"msg": "No Employee with that ID"}, 404
コード例 #26
0
 def get(self, id):
     emp = EmployeeModel.find_by_id(id)
     if not emp:
         return {'message': 'Employee not found!! :( '}
     return emp.json()
コード例 #27
0
 def get(self, _id):
     user = EmployeeModel.find_by_id(_id)
     if user:
         return user.json()
     return {"message": "No matching account."}, 404
コード例 #28
0
 def delete(self, _id):
     employee = EmployeeModel.find_by_id(_id)
     if employee:
         employee.delete_from_db()
     return {'message': 'successfully deleted the employee'}
コード例 #29
0
    def get(self, _id):
        employee = EmployeeModel.find_by_id(_id)

        if employee:
            return employee.json()
        return {'message': 'Employee not found'}, 404
コード例 #30
0
 def get(employee_id):
     """Fetch an employee given its identifier"""
     employee = EmployeeModel.find_by_id(employee_id)
     if employee is not None:
         return employee
     api.abort(404, f'Employee {employee_id} does not exist')