Esempio n. 1
0
def delete_applicant():
    email = request.args.get('email')
    res = session.query(Applicant).filter(Applicant.email == email).all()
    if not res:
        response = jsonify({"code": -1, "message": "Email not found"})
        return make_response(response, 401)

    applications = [
        application.to_json()
        for application in session.query(Application).filter(
            Application.applicant == email)
    ]
    paths = [
        '/'.join(application['video_name'].split('/')[3:7])
        for application in applications
    ]
    session.query(Applicant).filter(Applicant.email == email).delete()

    # #delete profile pic from s3 and all applications applicant submitted
    bucket = s3_resource.Bucket(bucket_name)
    bucket.objects.filter(Prefix=f'applicant/{email}').delete()
    for path in paths:
        bucket.objects.filter(Prefix=path).delete()

    session.commit()
    response = jsonify({
        "code": 1,
        "message": "Successfully deleted applicant"
    })
    return make_response(response, 201)
Esempio n. 2
0
def add_job():
    attributes = request.json
    job = Job(**attributes)
    try:
        session.add(job)
        session.commit()
        response = jsonify({"code": 1, "message": "Successfully added job"})
        return make_response(response, 201)
    except:
        session.rollback()
        response = jsonify({"code": -1, "message": "role alreasy exist"})
        return make_response(response, 401)
Esempio n. 3
0
def add_recruiter():
    attributes = request.json
    recruiter = Recruiter(**attributes)
    try:
        session.add(recruiter)
        session.commit()
        response = jsonify({
            "code": 1,
            "message": "Successfully added recruiter!"
        })
        return make_response(response, 201)
    except:
        session.rollback()
        response = jsonify({"code": -1, "message": "Email already exists"})
        return make_response(response, 401)
Esempio n. 4
0
def add_applicant():
    attributes = request.json
    applicant = Applicant(**attributes)
    try:
        session.add(applicant)
        session.commit()
        response = jsonify({
            "code": 1,
            "message": "Successfully added applicant"
        })
        return make_response(response, 201)
    except:
        session.rollback()
        response = jsonify({"code": -1, "message": "Email already exists"})
        return make_response(response, 401)
Esempio n. 5
0
def delete_recruiter():
    email = request.args.get('email')
    res = session.query(Recruiter).filter(Recruiter.email == email).delete()
    if res == 0:
        response = jsonify({"code": -1, "message": "Email not found!"})
        return make_response(response, 401)

    #delete company logo from s3
    bucket = s3_resource.Bucket(bucket_name)
    bucket.objects.filter(Prefix=f'recruiter/{email}').delete()
    bucket.objects.filter(Prefix=f'application/{email}').delete()
    session.commit()
    response = jsonify({
        "code": 1,
        "message": "Successfully deleted recruiter!"
    })
    return make_response(response, 201)
Esempio n. 6
0
def add_files():
    recruiter = request.args.get('recruiter')
    role = request.args.get('role')
    applicant = request.args.get('applicant')
    resume = request.files['myResume']
    cover = request.files['myCover']
    video = request.files['myVideo']
    files = [resume, cover, video]

    resume_destination = f'application/{recruiter}/{role}/{applicant}/{resume.filename}'
    cover_destination = f'application/{recruiter}/{role}/{applicant}/{cover.filename}'
    video_destination = f'application/{recruiter}/{role}/{applicant}/{video.filename}'
    destinations = [resume_destination, cover_destination, video_destination]

    resume_url = f'https://{bucket_name}.s3.amazonaws.com/' + resume_destination
    cover_url = f'https://{bucket_name}.s3.amazonaws.com/' + cover_destination
    video_url = f'https://{bucket_name}.s3.amazonaws.com/' + video_destination
    application = session.query(Application).filter(
        Application.applicant == applicant, Application.recruiter == recruiter,
        Application.role == role).all()
    if not application:
        response = jsonify({
            "code": -1,
            "message": "Invalid Email or User not in DB"
        })
        return make_response(response, 401)

    #update applicant object with s3 obj url
    application[0].resume_name = resume_url
    application[0].cover_letter_name = cover_url
    application[0].video_name = video_url
    session.commit()

    #write files to s3
    for file, destination in zip(files, destinations):
        if file == video:
            upload_file(file, destination, video=True)
        else:
            upload_file(file, destination)

    response = jsonify({"code": 1, "message": 'added files to application'})
    return make_response(response, 201)
Esempio n. 7
0
def adding_profile_pic():
    email = request.args.get('email')
    file = request.files['myFile']
    file_name = file.filename
    destination = f'recruiter/{email}/{file_name}'
    upload_file(file, destination)
    #update recruiter object with s3 obj url
    obj_url = f'https://{bucket_name}.s3.amazonaws.com/recruiter/{email}/{file_name}'
    recruiter = session.query(Recruiter).filter(Recruiter.email == email).all()
    if not recruiter:
        response = jsonify({
            "code": -1,
            "message": "Invalid Email or User not in DB"
        })
        return make_response(response, 401)

    recruiter[0].company_logo_name = obj_url
    session.commit()
    response = jsonify({"code": 1, "message": 'added company logo'})
    return make_response(response, 201)
Esempio n. 8
0
def adding_profile_pic():
    email = request.args.get('email')
    file = request.files['myFile']
    file_name = file.filename
    destination = f'applicant/{email}/{file_name}'
    #update applicant object with s3 obj url
    obj_url = f'https://{bucket_name}.s3.amazonaws.com/applicant/{email}/{file_name}'
    applicant = session.query(Applicant).filter(Applicant.email == email).all()
    if not applicant:
        response = jsonify({
            "code": -1,
            "message": "Invalid Email or User not in DB"
        })
        return make_response(response, 401)

    upload_file(file, destination)
    applicant[0].picture_name = obj_url
    session.commit()
    response = jsonify({"code": 1, "message": 'added profile pic'})
    return make_response(response, 201)
Esempio n. 9
0
def remove_application():
    applicant = request.args.get('applicant')
    recruiter = request.args.get('recruiter')
    role = request.args.get('role')
    res = session.query(Application).filter(Application.applicant == applicant,
                                            Application.recruiter == recruiter,
                                            Application.role == role).delete()
    if res == 0:
        response = jsonify({"code": -1, "message": "application not found"})
        return make_response(response, 401)

    #Delete static files from s3
    bucket = s3_resource.Bucket(bucket_name)
    bucket.objects.filter(
        Prefix=f'application/{recruiter}/{role}/{applicant}').delete()
    session.commit()
    response = jsonify({
        "code": 1,
        "message": "Successfully deleted application"
    })
    return make_response(response, 201)
Esempio n. 10
0
def add_object_to_db(attribute_array, data_array, model):
    for data in data_array:
        d = dict(zip(attribute_array, data))
        obj = model(**d)
        session.add(obj)
    session.commit()