From a569f4f6140b4c7c95435d15fe3c051ba2738c74 Mon Sep 17 00:00:00 2001 From: CollinBeczak Date: Fri, 19 Jul 2024 18:26:27 -0500 Subject: [PATCH 1/2] fix edge case bug in parsers where avatarUrl is null --- .../framework/repository/ChallengeCommentRepository.scala | 4 ++-- .../maproulette/framework/repository/CommentRepository.scala | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala b/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala index 499a3866..2a7a0f46 100644 --- a/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala +++ b/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala @@ -123,7 +123,7 @@ object ChallengeCommentRepository { id, osmId, name, - avatarUrl, + avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, challengeId, projectId, created, @@ -142,7 +142,7 @@ object ChallengeCommentRepository { id, osmId, name, - avatarUrl, + avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, challengeId, projectId, created, diff --git a/app/org/maproulette/framework/repository/CommentRepository.scala b/app/org/maproulette/framework/repository/CommentRepository.scala index 2fa8b61b..e1d5a2e7 100644 --- a/app/org/maproulette/framework/repository/CommentRepository.scala +++ b/app/org/maproulette/framework/repository/CommentRepository.scala @@ -177,7 +177,7 @@ object CommentRepository { id, osm_id = osmId, osm_username = name, - avatarUrl, + avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, taskId = taskId, challengeId = challengeId, projectId = projectId, @@ -201,7 +201,7 @@ object CommentRepository { id, osm_id = osmId, osm_username = name, - avatarUrl, + avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, taskId = taskId, challengeId = challengeId, projectId = projectId, From d3ed1a312b818d18a1eb2fbb9369c55e0f12d6ea Mon Sep 17 00:00:00 2001 From: CollinBeczak Date: Fri, 19 Jul 2024 18:46:06 -0500 Subject: [PATCH 2/2] make avatar_url an empty string --- .../ChallengeCommentRepository.scala | 12 ++++++---- .../repository/CommentRepository.scala | 24 ++++++++----------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala b/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala index 2a7a0f46..e6a7f6a6 100644 --- a/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala +++ b/app/org/maproulette/framework/repository/ChallengeCommentRepository.scala @@ -117,13 +117,15 @@ class ChallengeCommentRepository @Inject() (override val db: Database) extends R object ChallengeCommentRepository { val parser: RowParser[ChallengeComment] = { long("id") ~ long("project_id") ~ long("challenge_id") ~ get[DateTime]("created") ~ - get[String]("comment") ~ long("osm_id") ~ get[String]("name") ~ get[String]("avatar_url") map { + get[String]("comment") ~ long("osm_id") ~ get[String]("name") ~ get[Option[String]]( + "avatar_url" + ) map { case id ~ projectId ~ challengeId ~ created ~ comment ~ osmId ~ name ~ avatarUrl => ChallengeComment( id, osmId, name, - avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, + avatarUrl.getOrElse(""), challengeId, projectId, created, @@ -134,7 +136,9 @@ object ChallengeCommentRepository { val expandedParser: RowParser[ChallengeComment] = { long("id") ~ long("project_id") ~ long("challenge_id") ~ get[DateTime]("created") ~ - get[String]("comment") ~ long("osm_id") ~ get[String]("name") ~ get[String]("avatar_url") ~ get[ + get[String]("comment") ~ long("osm_id") ~ get[String]("name") ~ get[Option[String]]( + "avatar_url" + ) ~ get[ Option[String] ]("challenge_name") ~ get[Option[Int]]("full_count") map { case id ~ projectId ~ challengeId ~ created ~ comment ~ osmId ~ name ~ avatarUrl ~ challengeName ~ fullCount => @@ -142,7 +146,7 @@ object ChallengeCommentRepository { id, osmId, name, - avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, + avatarUrl.getOrElse(""), challengeId, projectId, created, diff --git a/app/org/maproulette/framework/repository/CommentRepository.scala b/app/org/maproulette/framework/repository/CommentRepository.scala index e1d5a2e7..54445eea 100644 --- a/app/org/maproulette/framework/repository/CommentRepository.scala +++ b/app/org/maproulette/framework/repository/CommentRepository.scala @@ -165,19 +165,17 @@ class CommentRepository @Inject() (override val db: Database) extends Repository object CommentRepository { val parser: RowParser[Comment] = { - long("task_comments.id") ~ long("task_comments.osm_id") ~ get[String]("users.name") ~ get[ - String - ]("users.avatar_url") ~ - long("task_comments.task_id") ~ long("task_comments.challenge_id") ~ long( - "task_comments.project_id" - ) ~ get[DateTime]("task_comments.created") ~ get[String]("task_comments.comment") ~ + long("task_comments.id") ~ long("task_comments.osm_id") ~ get[String]("users.name") ~ + get[Option[String]]("users.avatar_url") ~ long("task_comments.task_id") ~ + long("task_comments.challenge_id") ~ long("task_comments.project_id") ~ + get[DateTime]("task_comments.created") ~ get[String]("task_comments.comment") ~ get[Option[Long]]("task_comments.action_id") map { case id ~ osmId ~ name ~ avatarUrl ~ taskId ~ challengeId ~ projectId ~ created ~ comment ~ actionId => Comment( id, osm_id = osmId, osm_username = name, - avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, + avatarUrl.getOrElse(""), taskId = taskId, challengeId = challengeId, projectId = projectId, @@ -189,19 +187,17 @@ object CommentRepository { } val expandedParser: RowParser[Comment] = { - long("task_comments.id") ~ long("task_comments.osm_id") ~ get[String]("users.name") ~ get[ - String - ]("users.avatar_url") ~ - long("task_comments.task_id") ~ long("task_comments.challenge_id") ~ long( - "task_comments.project_id" - ) ~ get[DateTime]("task_comments.created") ~ get[String]("task_comments.comment") ~ + long("task_comments.id") ~ long("task_comments.osm_id") ~ get[String]("users.name") ~ + get[Option[String]]("users.avatar_url") ~ long("task_comments.task_id") ~ + long("task_comments.challenge_id") ~ long("task_comments.project_id") ~ + get[DateTime]("task_comments.created") ~ get[String]("task_comments.comment") ~ get[Option[Long]]("task_comments.action_id") ~ get[Option[Int]]("full_count") map { case id ~ osmId ~ name ~ avatarUrl ~ taskId ~ challengeId ~ projectId ~ created ~ comment ~ actionId ~ fullCount => Comment( id, osm_id = osmId, osm_username = name, - avatarUrl = if (avatarUrl.isEmpty) "/assets/images/user_no_image.png" else avatarUrl, + avatarUrl.getOrElse(""), taskId = taskId, challengeId = challengeId, projectId = projectId,