예제 #1
0
def CreateEmployee(id, name, team_id, rect, des, fab, inst):
    with db_session:
        e = Employees(id=id, name=name, team_id=team_id)
        if rect:
            e.skills.add(Skills[1])
        if des:
            e.skills.add(Skills[2])
        if fab:
            e.skills.add(Skills[3])
        if inst:
            e.skills.add(Skills[4])
예제 #2
0
def apicoids():
    if request.headers.get("X-Api-Key") == api_key:
        if request.method == "GET":
            logging.info('GET /api/test received')
            return jsonify({"ids": [company.ID for company in Company.query.order_by(Company.ID.desc()).all()]})

        if request.method == "PUT":
            try:
                logging.info('/api/companies PUT received')
                to_json = json.loads(request.data)
            except Exception as e:
                exc = f'{type(e).__name__}: {e}'
                logging.warning(f'/api/companies PUT failed to load json {exc}')
                return jsonify(e)

            for co, v in to_json.items():
                status = "success"
                employees_list = []
                get_co = Company.query.filter_by(ID=to_json[co]['ID']).first()
                get_co.Weekly = to_json[co]['weekly_profit']
                get_co.Daily = to_json[co]['daily_profit']
                get_co.Rank = to_json[co]['rating']
                for member in to_json[co]['employees']:
                    employees_list.append(member)
                    get_mem = Employees.query.filter_by(ID=member).first()
                    for word in ['days', 'day']:
                        if word in to_json[co]['employees'][member]['last_action']['relative']:
                            status = "danger"
                    if get_mem:
                        get_mem.EmployeeName = to_json[co]['employees'][member]['name']
                        get_mem.LastSeen = to_json[co]['employees'][member]['last_action']['relative']
                        get_mem.Position = to_json[co]['employees'][member]['position']

                    if not get_mem:
                        add_employee = Employees(CompanyID=co,
                                                 LastSeen=to_json[co]['employees'][member]['last_action']['relative'],
                                                 ID=member,
                                                 EmployeeName=to_json[co]['employees'][member]['name'],
                                                 Position=to_json[co]['employees'][member]['position']
                                                 )
                        db_session.add(add_employee)
                co_list = [str(emp.ID) for emp in Employees.query.filter_by(CompanyID=co).all()]
                for person in co_list:
                    if person not in employees_list:
                        get_pers = Employees.query.filter_by(ID=person).first()
                        db_session.delete(get_pers)
                get_co.Status = status
            db_session.commit()
            return jsonify({"message": "Companies updated"}), 200
        else:
            return jsonify({"message": "ERROR: Unauthorized"}), 401
    else:
        return jsonify({"message": "ERROR: Unauthorized"}), 401
예제 #3
0
def create():
    if not request.form['name'] or not request.form[
            'gender'] or not request.form['city']:
        flash('Please enter all the fields', 'error')
    else:
        employee = Employees(request.form['name'], request.form['gender'],
                             request.form['city'])
        db.session.add(employee)
        db.session.commit()
        flash('An Employee record was successfully added')
        result = emp_schema.dump(employee)
        return jsonify(result.data)
예제 #4
0
 def post(self):
     try:
         data = request.json
         employee = Employees(name=data['name'], email=data['email'],
                              department=data['department'], salary=data['salary'],
                              birth_date=data['birth_date'])
         employee.save()
         response = {'message':'Employee {} was created successfully'.format(employee.id),
                 'id':employee.id,
                 'name': employee.name,
                 'email': employee.email,
                 'department': employee.department,
                 'salary': employee.salary,
                 'birth_date': employee.birth_date
             }
     except KeyError:
         response = {
             'status': 'error',
             'message': 'API error, consult the administrator'
         }
     return response
예제 #5
0
 def get(self):
     employees_highest = Employees.highest(Employees.salary)
     employees_lowest = Employees.lowest(Employees.salary)
     average = Employees.average_salary(Employees.salary)
     response = {"lowest":[{
         'id': i.id,
         'name': i.name,
         'email': i.email,
         'department': i.department,
         'salary': format(i.salary,'.2f'),
         'birth_date': i.birth_date} for i in employees_lowest],
         "highest": [{
             'id': i.id,
             'name': i.name,
             'email': i.email,
             'department': i.department,
             'salary': format(i.salary, '.2f'),
             'birth_date': i.birth_date} for i in employees_highest],
         "average": [{'average': average}]
     }
     return response
예제 #6
0
 def get(self):
     employees_younger = Employees.younger(Employees.birth_date)
     employees_older = Employees.older(Employees.birth_date)
     response = {"younger":[{
         'id': i.id,
         'name': i.name,
         'email': i.email,
         'department': i.department,
         'salary': format(i.salary,'.2f'),
         'birth_date': i.birth_date
         } for i in employees_younger],
         "older": [{
             'id': i.id,
             'name': i.name,
             'email': i.email,
             'department': i.department,
             'salary': format(i.salary, '.2f'),
             'birth_date': i.birth_date
             } for i in employees_older],
         "average": {'average': '40'}
     }
     return response
예제 #7
0
def test123():
    if request.method == "POST":
        add = request.form.get('companyid')
        remove = request.form.get('deletecompany')
        if add:
            print('addding', add)
            url = f"https://api.torn.com/company/{add}?selections=&key={torn_key}"
            try:
                get_company = requests.get(url).json()
                if get_company.get('error'):
                    flash(f'Torn says: {get_company.get("error").get("error")}', 'danger')
                db_query = Company.query.filter_by(ID=add).first()
                if db_query:
                    flash(f'Company {add} already exists in the database.', 'danger')
                if not get_company.get('error') and not db_query:
                    company = get_company.get('company')
                    status = "success"
                    for employee in company.get('employees'):
                        add_employee = Employees(CompanyID=add,
                                                 LastSeen=company.get('employees').get(employee).get("last_action").get(
                                                     'relative'),
                                                 ID=employee,
                                                 EmployeeName=company.get('employees').get(employee).get('name'),
                                                 Position=company.get('employees').get(employee).get('position'))
                        for word in ['days', 'day']:
                            if word in company.get('employees').get(employee).get("last_action").get('relative'):
                                status = "danger"
                        db_session.add(add_employee)
                    test = Company(ID=add, CompanyName=company.get('name'), Weekly=company.get('weekly_profit'),
                                   Daily=company.get('daily_profit'), Status=status, Rank=company.get('rating'))
                    db_session.add(test)
                    db_session.commit()
                    flash(f'Company {add} successfully added to the database.', 'success')
            except Exception as e:
                flash(f'Error: {e}', 'danger')
                return render_template('companies.html')

        if remove and remove != "Empty":
            db_query = Company.query.filter_by(ID=remove).first()
            db_session.delete(db_query)
            fetch_employees = Employees.query.filter_by(CompanyID=remove).all()
            for employee in fetch_employees:
                db_session.delete(employee)
            db_session.commit()
            flash(f'Successfully removed {remove}', 'success')
        return render_template('companies.html', companies=Company.query.order_by(Company.ID.desc()).all())

    if request.method == "GET":
        flash('This page is deprecated and no longer maintained. It is merely here for preservation.', 'danger')
        return render_template('companies.html', companies=Company.query.order_by(Company.ID.desc()).all())
예제 #8
0
def PrintEmployees():
    with db_session:
        Employees.select().show()