Skip to content

Commit

Permalink
update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxcutex committed Jan 31, 2021
1 parent 685ce33 commit 8efcca2
Show file tree
Hide file tree
Showing 24 changed files with 700 additions and 51 deletions.
3 changes: 2 additions & 1 deletion app/blueprints/base_blueprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def register(self):

from app.blueprints.user_skill_blueprint import user_skill_blueprint
from app.blueprints.user_education_blueprint import user_education_blueprint

from app.blueprints.client_blueprint import client_blueprint

self.app.register_blueprint(home_blueprint)
self.app.register_blueprint(activity_blueprint)
Expand All @@ -37,3 +37,4 @@ def register(self):
self.app.register_blueprint(skill_blueprint)
self.app.register_blueprint(user_skill_blueprint)
self.app.register_blueprint(user_education_blueprint)
self.app.register_blueprint(client_blueprint)
81 changes: 81 additions & 0 deletions app/blueprints/client_blueprint.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
from app.blueprints.base_blueprint import (
Blueprint,
BaseBlueprint,
request,
Security,
Auth,
)
from app.controllers.client_controller import ClientController

# from flasgger import swag_from

url_prefix = "{}/clients".format(BaseBlueprint.base_url_prefix)
client_blueprint = Blueprint("client", __name__, url_prefix=url_prefix)
client_controller = ClientController(request)

""" CLIENTS """


@client_blueprint.route("/", methods=["GET"])
@Auth.has_permission(["view_clients"])
# @swag_from('documentation/get_all_clients.yml')
def list_clients():
return client_controller.list_clients()


@client_blueprint.route("/engineers", methods=["GET"])
@Auth.has_permission(["view_clients"])
# @swag_from('documentation/get_all_clients.yml')
def list_client_engineers():
return client_controller.list_client_engineers()


@client_blueprint.route("/<int:client_id>", methods=["GET"])
@Auth.has_permission(["view_clients"])
# @swag_from('documentation/get_client_by_id.yml')
def get_client(client_id):
return client_controller.get_client(client_id)


@client_blueprint.route("/", methods=["POST"])
@Security.validator(
[
"institution_name|required:string",
"institution_url|required:string",
"institution_city|required:string",
"institution_country|optional:string",
"institution_size|required:string",
"status|required:string",
"start_date|required:date",
]
)
@Auth.has_permission(["create_clients"])
# @swag_from('documentation/create_client.yml')
def create_client():
return client_controller.create_client()


@client_blueprint.route("/<int:client_id>", methods=["PUT", "PATCH"])
@Security.validator(
[
"client_id|required:int",
"institution_name|required:string",
"institution_url|required:string",
"institution_city|required:string",
"institution_country|optional:string",
"institution_size|required:string",
"status|required:string",
"start_date|required:date",
]
)
@Auth.has_permission(["update_clients"])
# @swag_from("documentation/update_client.yml")
def update_client(client_id):
return client_controller.update_client(client_id)


@client_blueprint.route("/<int:client_id>", methods=["DELETE"])
@Auth.has_permission(["delete_clients"])
# @swag_from("documentation/delete_client.yml")
def delete_client(client_id):
return client_controller.delete_client(client_id)
51 changes: 47 additions & 4 deletions app/blueprints/user_blueprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,20 @@ def create_user():
return user_controller.create_user()


@user_blueprint.route("/check_email_exists", methods=["GET"])
# @swag_from('documentation/create_user.yml')
def check_email():
email = request.args.get("email")
return user_controller.check_email(email)


@user_blueprint.route("/register/", methods=["POST"])
@Security.validator(
[
"role_id|required",
"gender|required",
"date_of_birth|required",
"employment_date|required",
"password|required",
"first_name|required",
"last_name|required",
Expand All @@ -78,6 +86,25 @@ def register():
return user_controller.register()


@user_blueprint.route("/update/<int:id>", methods=["POST"])
@Security.validator(
[
"role_id|required",
"gender|required",
"date_of_birth|required",
"employment_date|required",
"password|optional",
"first_name|required",
"last_name|required",
"userId|optional",
"imageUrl|optional:url",
]
)
# @swag_from('documentation/create_user.yml')
def update():
return user_controller.update()


@user_blueprint.route("/<int:id>/", methods=["GET"])
# @cross_origin(supports_credentials=True)
@Auth.has_permission(["view_users", "view_users_self"])
Expand All @@ -99,9 +126,13 @@ def update_user_summary(user_id):
@Auth.has_permission(["update_user", "update_user_self"])
@Security.validator(
[
"role_id|optional",
"first_name|optional",
"last_name|optional",
"role_id|required",
"gender|required",
"date_of_birth|required",
"employment_date|required",
"password|optional",
"first_name|required",
"last_name|required",
"user_id|optional",
"imageUrl|optional:url",
]
Expand All @@ -124,7 +155,7 @@ def update_user(user_id):
"user_id|required",
"git_hub|optional",
"linked_in|optional",
"personal_email|optional:url",
"personal_email|optional:email",
]
)
# @swag_from('documentation/update_user.yml')
Expand All @@ -135,10 +166,22 @@ def update_user_info(user_id):
@user_blueprint.route("/<int:user_id>/image", methods=["PUT", "PATCH"])
# @cross_origin(supports_credentials=True)
@Auth.has_permission(["update_user", "update_user_self"])
@Security.validator(
[
"image_url|required",
]
)
def update_profile_image(user_id):
return user_controller.update_profile_image(user_id)


@user_blueprint.route("/generate_presigned_url", methods=["GET"])
# @cross_origin(supports_credentials=True)
@Auth.has_permission(["update_user", "update_user_self"])
def generate_presigned_url(file_name, expiration):
return user_controller.generate_presigned_url(file_name, expiration)


@user_blueprint.route("/login", methods=["POST"])
def authenticate_user():
return user_controller.authenticate_user()
115 changes: 115 additions & 0 deletions app/controllers/client_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,118 @@
class ClientController(BaseController):
def __init__(self, request):
BaseController.__init__(self, request)

def list_clients(self):
clients = self.client_repo.get_unpaginated()

client_list = [client.serialize() for client in clients.items]
return self.handle_response("OK", payload={"clients": client_list})

def list_client_engineers(self, client_id):
engineers = self.user_client_repo.get_unpaginated(client_id=client_id)

engineer_list = [engineer.serialize() for engineer in engineers]
return self.handle_response("OK", payload={"clients": engineer_list})

def get_client(self, client_id):
client = self.client_repo.get(client_id)
if client:
return self.handle_response("OK", payload={"client": client.serialize()})
return self.handle_response("Invalid or Missing client_id", status_code=400)

def create_client(self):
(
institution_name,
institution_url,
institution_city,
institution_country,
institution_size,
status,
start_date,
) = self.request_params(
"institution_name",
"institution_url",
"institution_city",
"institution_country",
"institution_size",
"status",
"start_date",
)
client1 = self.client_repo.find_first(institution_name=institution_name)

if not client1:
try:
client = self.client_repo.new_client(
institution_name=institution_name,
institution_url=institution_url,
institution_city=institution_city,
institution_country=institution_country,
institution_size=institution_size,
status=status,
start_date=start_date,
)
return self.handle_response(
"OK", payload={"client": client.serialize()}, status_code=201
)
except Exception as e:
return self.handle_response(
"Error processing: " + str(e), status_code=400
)

return self.handle_response(
"Client with this name already exists", status_code=400
)

def update_client(self, client_id):
(
client_id,
institution_name,
institution_url,
institution_city,
institution_country,
institution_size,
status,
start_date,
) = self.request_params(
"client_id",
"institution_name",
"institution_url",
"institution_city",
"institution_country",
"institution_size",
"status",
"start_date",
)
client = self.client_repo.get(client_id)
if client:
updates = {}
if institution_name:
client1 = self.client_repo.find_first(institution_name=institution_name)
if client1:
return self.handle_response(
"Client with this name already exists", status_code=400
)
updates["institution_name"] = institution_name
updates["institution_url"] = institution_url
updates["institution_city"] = institution_city
updates["institution_country"] = institution_country
updates["institution_size"] = institution_size
updates["status"] = status
updates["start_date"] = start_date

client = self.client_repo.update(client, **updates)
return self.handle_response("OK", payload={"client": client.serialize()})
return self.handle_response(
"Invalid or incorrect client_id provided", status_code=400
)

def delete_client(self, client_id):
client = self.client_repo.get(client_id)
if client:
updates = {}
updates["is_deleted"] = True
self.client_repo.update(client, **updates)
return self.handle_response("client deleted", payload={"status": "success"})
return self.handle_response(
"Invalid or incorrect client_id provided", status_code=404
)
2 changes: 1 addition & 1 deletion app/controllers/skill_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def __init__(self, request):

def list_skills(self):
skills = self.skill_repo.get_unpaginated()
skill_list = [skill.serialize() for skill in skills.items]
skill_list = [skill.serialize() for skill in skills]
return self.handle_response(
"OK",
payload={
Expand Down
Loading

0 comments on commit 8efcca2

Please sign in to comment.