Beispiel #1
0
def create_job():
    if not request.json:
        return jsonify({'error': 'Empty request'})
    elif not all(key in request.json for key in [
            'id', 'job', 'team_leader_id', 'work_size', 'collaborators',
            'categories_id', 'is_finished'
    ]):
        return jsonify({'error': 'Bad request'})
    session = db_session.create_session()
    if session.query(Jobs).filter(Jobs.id == request.json['id']).first():
        return jsonify({'error': 'Id already exists'})
    job = Jobs()
    job.job = request.json['job']
    job.id = request.json['id']
    job.team_leader_id = request.json['team_leader_id']
    job.work_size = request.json['work_size']
    job.collaborators = request.json['collaborators']
    job.is_finished = request.json['is_finished']
    job.team_leader = session.query(User).filter(
        User.id == request.json['team_leader_id']).first()
    job.categories_id = request.json['categories_id']
    session.add(job)
    session.commit()
    for i in request.json['categories_id'].split(', '):
        job.categories.append(
            session.query(Category).filter(Category.id == int(i)).first())
    session.commit()
    return jsonify({'success': 'OK'})
Beispiel #2
0
def create_job():
    if not request.json:
        return jsonify({'error': 'Empty request'})
    elif not all(key in request.json for key in
                 ['job', 'work_size', 'collaborators', 'start_date', 'is_finished', 'team_leader']):
        return jsonify({'error': 'Bad request'})
    db_sess = db_session.create_session()
    if request.json.get('id'):
        if db_sess.query(Jobs).filter(Jobs.id == int(request.json['id'])).first():
            return jsonify({'error': 'Id already exists'})
    job = Jobs(
        job=request.json['job'],
        work_size=int(request.json['work_size']),
        collaborators=request.json['collaborators'],
        start_date=datetime.datetime.strptime(
            request.json['start_date'], '%d-%m-%y').date(),
        is_finished=request.json['is_finished'],
        team_leader=int(request.json['team_leader'])
    )
    if request.json.get('id'):
        job.id = int(request.json['id'])
    if request.json.get('end_date'):
        job.end_date = datetime.datetime.strptime(
            request.json['end_date'], '%d-%m-%y').date()
    db_sess.add(job)
    db_sess.commit()
    return jsonify({'success': 'OK'})
Beispiel #3
0
def add_job():
    form = JobsForm()
    if form.validate_on_submit():
        session = create_session()
        job = Jobs()
        job.id = random_id()
        job.customer = current_user.id
        job.title = form.title.data
        job.cost = form.cost.data
        job.description = form.description.data
        job.brief = ''.join(form.description.data[:30] + '...')
        job.category = form.category.data
        job.category_2 = form.category_2.data
        UPLOAD_DIR: Path = Path(__file__).parent / 'static/jobs_img'
        UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
        for upload in request.files.getlist('images'):
            filename = secure_filename(upload.filename)
            if filename != '':
                save_path = str(UPLOAD_DIR / filename)
                save_path2 = save_path.split('jobs_img')
                filename = random_name()
                save_path = save_path2[0] + 'jobs_img\\' + filename + '.jpg'
                upload.save(save_path)
                job.img = '\\static\\jobs_img\\{}.jpg'.format(filename)
        session.add(job)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('job_add.html', title='Adding a job', form=form)
Beispiel #4
0
def get_jobs():
    session = db_session.create_session()
    if request.method == "GET":

        def format_for_table(d: dict, categories: list):
            dn = dict()
            dn["Title of activity"] = d['job']
            leader = session.query(User).filter(
                User.id == d['team_leader']).first()
            dn["Team leader"] = f"{leader.surname} {leader.name}"
            dn["Duration"] = f"{d['work_size']} hours"
            dn["List of collaborators"] = d["collaborators"]
            dn["Hazard category"] = ', '.join(
                map(lambda x: str(x.id), categories))
            dn["Is finished"] = "Finished" if d[
                'is_finished'] else "Is not finished"
            return [tuple(dn.keys()), tuple(dn.values()), d['creator']]

        return jsonify([
            format_for_table(i.__dict__, i.categories)
            for i in session.query(Jobs)
        ])
    elif request.method == "POST":
        if not request.json:
            return jsonify({'error': 'Empty request'})
        elif not all(
                key in (rj := request.json) for key in {
                    'team_leader', 'job', 'collaborators', 'is_finished',
                    'work_size', 'job_id', 'current_user_id'
                }):
            return jsonify({'error': 'Bad request'})
        elif session.query(Jobs).get(request.json['job_id']):
            return jsonify(error="Id already exists")
        jobs = Jobs()
        jobs.team_leader = request.json['team_leader']
        jobs.job = request.json['job']
        jobs.collaborators = request.json['collaborators']
        jobs.is_finished = request.json['is_finished']
        jobs.work_size = request.json['work_size']
        jobs.id = request.json["job_id"]
        jobs.creator = request.json['current_user_id']
        session.add(jobs)
        session.commit()
        return jsonify(success="OK")
 def post(self):
     args = parser.parse_args()
     session = db_session.create_session()
     if session.query(Jobs).get(args['id']):
         abort(400, message='Id already exists')
     abort_if_user_not_found(args['team_leader'])
     jobs = Jobs()
     jobs.user = session.query(User).get(args['team_leader'])
     jobs.id = args['id']
     jobs.team_leader = args['team_leader']
     jobs.job = args['job']
     jobs.work_size = args['work_size']
     jobs.collaborators = args['collaborators']
     jobs.speciality = args['speciality']
     jobs.hazard_category = args['hazard_category']
     jobs.is_finished = args['is_finished']
     session.add(jobs)
     session.commit()
     return jsonify({'success': 'OK'})
def create_jobs():
    if not request.json:
        return jsonify({'error': 'Empty request'})
    elif not all(key in request.json for key in [
            'id', 'team_leader', 'collaborators', 'job', 'work_size',
            'is_finished'
    ]):
        return jsonify({'error': 'Bad request'})
    db_sess = db_session.create_session()
    if db_sess.query(Jobs).filter(Jobs.id == request.json['id']).first():
        return jsonify({'error': 'Id already exists'})
    jobs = Jobs()
    jobs.id = request.json['id']
    jobs.team_leader = request.json['team_leader']
    jobs.collaborators = request.json['collaborators']
    jobs.job = request.json['job']
    jobs.work_size = request.json['work_size']
    jobs.is_finished = request.json['is_finished']
    db_sess.add(jobs)
    db_sess.commit()
    return jsonify({'success': 'OK'})
Beispiel #7
0
 def post(self):
     args = parser.parse_args()
     session = db_session.create_session()
     job = session.query(Jobs).get(args['id'])
     if job:
         abort(404, message=f"Id {args['id']} already exists")
     job = Jobs()
     job.job = args['job']
     job.id = args['id']
     job.team_leader_id = args['team_leader_id']
     job.work_size = args['work_size']
     job.collaborators = args['collaborators']
     job.is_finished = args['is_finished']
     job.team_leader = session.query(User).filter(
         User.id == args['team_leader_id']).first()
     job.categories_id = args['categories_id']
     session.add(job)
     session.commit()
     for i in args['categories_id'].split(', '):
         job.categories.append(
             session.query(Category).filter(Category.id == int(i)).first())
     session.commit()
     return jsonify({'success': 'OK'})
Beispiel #8
0
    def test_delete_invalid(self):
        resp = requests.delete("127.0.0.1:8080/api/jobs/2020")
        self.assertEqual({'error': 'Not found'}, resp.json())

    def test_delete_valid(self):
        resp = requests.delete("127.0.0.1:8080/api/jobs/1")

        self.assertEqual({"success": "OK"}, resp.json())


if __name__ == "__main__":
    db_session.global_init("db/test_database.db")

    job_1 = Jobs()

    job_1.id = 1
    job_1.team_leader = 2
    job_1 = "Repair broken TV"
    job_1.work_size = 1
    job_1.collaborators = "1,2,3"

    job_1.start_date = datetime.datetime.now()
    job_1.end_date = datetime.datetime.now() + datetime.timedelta(1, 2, 3)

    job_1.is_finished = False

    job_2 = Jobs()
    job_1.id = 2
    job_1.team_leader = 1
    job_1 = "Repair broken spaceship"
    job_1.work_size = 5
db_session.global_init("database.db")
db_sess = db_session.create_session()

captain = User()
captain.id = 1
captain.surname = "Scott"
captain.name = "Ridley"
captain.age = 21
captain.position = "captain"
captain.speciality = "research engineer"
captain.address = "module_1"
captain.email = "*****@*****.**"

job = Jobs()
job.id = 1
job.team_leader = 1
job.job = "deployment of residental modules 1 and 2"
job.work_size = 15
job.collaborators = "2, 3"
job.start_date = datetime.datetime.now()
job.is_finished = False

db_sess.add(captain)
db_sess.add(job)
db_sess.commit()

r = requests.delete("http://127.0.0.1:8080/api/jobs/1")
assert r.json() == jsonify({"success": "OK"})

r = requests.delete("http://127.0.0.1:8080/api/jobs/2020")