def test_upsert_inserts_project_if_not_exists(self): self.test_project, self.test_user = create_canned_project() # Arrange UserService.upsert_mapped_projects(self.test_user.id, self.test_project.id) # Act projects = UserService.get_mapped_projects(self.test_user.username, "en") # Assert mapped_project = projects.mapped_projects[0] self.assertEqual( mapped_project.project_id, self.test_project.id ) # We should find we've mapped the test project
def get(self, username): """ Gets projects user has mapped --- tags: - projects produces: - application/json parameters: - in: header name: Accept-Language description: Language user is requesting type: string required: true default: en - name: username in: path description: The users username required: true type: string default: Thinkwhere responses: 200: description: Mapped projects found 404: description: User not found 500: description: Internal Server Error """ try: locale = ( request.environ.get("HTTP_ACCEPT_LANGUAGE") if request.environ.get("HTTP_ACCEPT_LANGUAGE") else "en" ) user_dto = UserService.get_mapped_projects(username, locale) return user_dto.to_primitive(), 200 except NotFound: return {"Error": "User not found"}, 404 except Exception as e: error_msg = f"User GET - unhandled error: {str(e)}" current_app.logger.critical(error_msg) return {"Error": "Unable to fetch projects"}, 500