def update_department(): department = Mapper.get_instance().json_to_department(request.json) try: department_service.update(department) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().department_to_json(department)
def update_project(): project = Mapper.get_instance().json_to_project(request.json) try: project_service.updateProject(project) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().project_to_json(project)
def get_report_sessions(): user_id = request.args.get('userid') project_id = request.args.get('projectid') if user_id is None and project_id is None: return jsonify([ Mapper.get_instance().report_session_to_json( x, project_service.getOneProject(x.get_project_id())) for x in feedback_service.getAllReportSessions() ]) if user_id is not None: try: return jsonify([ Mapper.get_instance().report_session_to_json( x, project_service.getOneProject(x.get_project_id())) for x in feedback_service.getAllReportSessionsForUser(user_id) ]) except ValueError as err: return Response(str(err), 400) if project_id is not None: try: list = feedback_service.getAllReportSessionsForProject(project_id) for x in list: x['start_date'] = x['start_date'].strftime( Mapper.get_date_time_format()) x['end_date'] = x['end_date'].strftime( Mapper.get_date_time_format()) return jsonify(list) except ValueError as err: return Response(str(err), 400)
def update_client(): client = Mapper.get_instance().json_to_client(request.json) try: client_service.update(client) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().client_to_json(client)
def update_user(): user = Mapper.get_instance().json_to_user(request.json) try: user_service.update(user) department = Mapper.get_instance().department_to_json( department_service.getOne(user.department_id)) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().user_to_json(user, department)
def delete_report_sessions(): project_id = request.json['project_id'] start_date = Mapper.get_instance().json_to_date_time( request.json['start_date']) end_date = Mapper.get_instance().json_to_date_time( request.json['end_date']) try: count = feedback_service.removeReportSessions(project_id, start_date, end_date) except ValueError as err: return Response(str(err), 400) return jsonify(removed=count)
def get_departments(): department_id = request.args.get('departmentid') if department_id is None: # get all departments return jsonify([ Mapper.get_instance().department_to_json(department) for department in department_service.getAll() ]) else: # get one client try: department = department_service.getOne(department_id) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().client_to_json(department)
def get_clients(): client_id = request.args.get('clientid') if client_id is None: # get all clients return jsonify([ Mapper.get_instance().client_to_json(client) for client in client_service.getAll() ]) else: # get one client try: client = client_service.getOne(client_id) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().client_to_json(client)
def save_user(): user = Mapper.get_instance().json_to_user(request.json) try: user_service.send_password_email( user ) # old, plain text password is used to send it as an email to the user print(user.get_password()) user.set_password(generate_password_hash( user.get_password())) # method : "pbkdf2:sha256" user_service.add(user) department = Mapper.get_instance().department_to_json( department_service.getOne(user.department_id)) except ValueError as err: return Response(str(err), 400) return Mapper.get_instance().user_to_json(user, department)
def get_technologies_and_users_with_recommandation(self): technologies = [] for technology in self.__tech_service.getAll(): technology = Mapper.get_instance().technology_to_json(technology) technology['users'] = [] for user in self.__user_service.getAll(): experience_in_days = 0 for user_project in self.__user_project_repo.getAllForUser( user.id): project = self.__project_repo.getOne( user_project.project_id) project_technology = self.__project_tech_repo.getOne( project.id, technology['id']) if project_technology is not None: difference = (datetime.now().date() if project.end_date is None else project.end_date) - project.start_date experience_in_days += difference.days technology['users'].append({ 'id': user.id, 'name': user.name, 'experienceInDays': experience_in_days }) technologies.append(technology) return technologies
def get_users(): user_id = request.args.get('userid') if user_id is None: # get all users users = [] for user in user_service.getAll(): department = Mapper.get_instance().department_to_json( department_service.getOne(user.department_id)) users.append(Mapper.get_instance().user_to_json(user, department)) return jsonify(users) else: # get one user try: user = user_service.getOne(user_id) return Mapper.get_instance().user_to_json(user) except ValueError as err: return Response(str(err), 400)
def get_all_projects(): project_id = request.args.get('projectid') if project_id is None: projects_list = [] for project in project_service.getAllProjects(): employees = [Mapper.get_instance().user_to_json(x) for x in project_service.getUsersForProject(project.id)] technologies = [Mapper.get_instance().technology_to_json(x) for x in project_service.getTechnologiesForProject(project.id)] client = Mapper.get_instance().client_to_json(client_service.getOne(project.client_id)) projects_list.append(Mapper.get_instance().project_to_json(project, employees, technologies, client)) return jsonify(projects_list) else: try: return Mapper.get_instance().project_to_json(project_service.getOneProject(project_id)) except ValueError as err: return Response(str(err), 400)
def assign_techs(): project_id = request.args.get('projectid') techs = Mapper.get_instance().json_to_technologies(request.json) try: for tech in techs: project_service.assignTechToProject(project_id, tech) return jsonify(success=True) except ValueError as err: return Response(str(err), 400)
def login_post(): user = userService.matchUserPassword(request.json['email'], request.json['password']) if user is None: return json.dumps(user) jsonUser = Mapper.get_instance().user_to_json(user) jsonUser['jwtToken'] = userService.generate_token(user.id) return jsonify(jsonUser)
def get_users(): project_id = request.args.get('projectid') user_id = request.args.get('userid') if project_id is not None and user_id is not None: return jsonify(assigned=project_service.isUserAssignedToProject(project_id, user_id)) if project_id is not None: try: users = project_service.getUsersForProject(project_id) return jsonify( [Mapper.get_instance().user_to_json(x, Mapper.get_instance().department_to_json(department_service.getOne(x.get_department_id()))) for x in users]) except ValueError as err: return Response(str(err), 400) if user_id is not None: try: return jsonify([Mapper.get_instance().project_to_json(x) for x in project_service.getProjectsForUser(user_id)]) except ValueError as err: return Response(str(err), 400)
def add_reports(): from datetime import datetime report_session_id = request.args.get('sessionid') try: count = feedback_service.addReports( report_session_id, Mapper.get_instance().json_to_reports(request.json), datetime.now()) except ValueError as err: return Response(str(err), 400) return jsonify(added=count)
def get_technologies(): project_id = request.args.get('projectid') tech_id = request.args.get('techid') if project_id is None and tech_id is None: return jsonify([Mapper.get_instance().technology_to_json(x) for x in technology_service.getAll()]) if tech_id is None: try: return jsonify( [Mapper.get_instance().technology_to_json(x) for x in project_service.getTechnologiesForProject(project_id)]) except ValueError as err: return Response(str(err), 400) if project_id is None: try: return Mapper.get_instance().technology_to_json(technology_service.getOne(tech_id)) except ValueError as err: return Response(str(err), 400) return jsonify(assigned=project_service.isTechAssignedToProject(project_id, tech_id))
def get_all_skills(): return jsonify([ Mapper.get_instance().skill_to_json(x) for x in feedback_service.getAllSkills() ])