Skip to content

Commit 07b782b

Browse files
authored
fix isArchived and isGlobal filtering in extendFind endpoint (#1168)
* fix isArchived and isGlobal filtering in extendFind endpoint * fix spelling error * set the default of isGlobal to true * fix issue with string values, convert them to booleans
1 parent a683a4e commit 07b782b

File tree

4 files changed

+24
-24
lines changed

4 files changed

+24
-24
lines changed

app/org/maproulette/framework/mixins/SearchParametersMixin.scala

+15-15
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,7 @@ trait SearchParametersMixin {
700700
* challengeParams.archived value is true
701701
*/
702702
def filterChallengeArchived(params: SearchParameters): FilterGroup = {
703-
if (params.challengeParams.archived.getOrElse("false") == "false") {
703+
if (params.challengeParams.archived.getOrElse(false) == false) {
704704
FilterGroup(
705705
List(
706706
FilterParameter.conditional(
@@ -720,24 +720,24 @@ trait SearchParametersMixin {
720720

721721
/**
722722
* Filters by c.is_global. Will only include if
723-
* challengeParams.filterGlobal value is true
723+
* challengeParams.global value is true
724724
*/
725725
def filterChallengeGlobal(params: SearchParameters): FilterGroup = {
726-
params.challengeParams.filterGlobal match {
727-
case Some(v) if v =>
728-
FilterGroup(
729-
List(
730-
FilterParameter.conditional(
731-
"is_global",
732-
value = "false",
733-
Operator.EQ,
734-
useValueDirectly = true,
735-
includeOnlyIfTrue = true,
736-
table = Some("c")
737-
)
726+
if (params.challengeParams.global.getOrElse(true) == false) {
727+
FilterGroup(
728+
List(
729+
FilterParameter.conditional(
730+
Challenge.FIELD_GLOBAL,
731+
value = "false",
732+
Operator.EQ,
733+
useValueDirectly = true,
734+
includeOnlyIfTrue = true,
735+
table = Some("c")
738736
)
739737
)
740-
case _ => FilterGroup(List())
738+
)
739+
} else {
740+
FilterGroup(List())
741741
}
742742
}
743743

app/org/maproulette/framework/model/Challenge.scala

+1
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ object Challenge extends CommonField {
287287
val FIELD_PARENT_ID = "parent_id"
288288
val FIELD_ENABLED = "enabled"
289289
val FIELD_ARCHIVED = "is_archived"
290+
val FIELD_GLOBAL = "is_global"
290291
val FIELD_STATUS = "status"
291292
val FIELD_DELETED = "deleted"
292293

app/org/maproulette/models/dal/ChallengeDAL.scala

+5-6
Original file line numberDiff line numberDiff line change
@@ -490,15 +490,15 @@ class ChallengeDAL @Inject() (
490490
this.cacheManager.withOptionCaching { () =>
491491
val insertedChallenge =
492492
this.withMRTransaction { implicit c =>
493-
SQL"""INSERT INTO challenges (name, owner_id, parent_id, difficulty, description, is_global, info_link, blurb,
493+
SQL"""INSERT INTO challenges (name, owner_id, parent_id, difficulty, description, info_link, blurb,
494494
instruction, enabled, featured, checkin_comment, checkin_source,
495495
overpass_ql, remote_geo_json, overpass_target_type, status, status_message, default_priority, high_priority_rule,
496496
medium_priority_rule, low_priority_rule, default_zoom, min_zoom, max_zoom,
497497
default_basemap, default_basemap_id, custom_basemap, updatetasks, exportable_properties,
498498
osm_id_property, task_bundle_id_property, last_task_refresh, data_origin_date, preferred_tags, preferred_review_tags,
499499
limit_tags, limit_review_tags, task_styles, requires_local, is_archived, review_setting, dataset_url, require_confirmation, task_widget_layout)
500500
VALUES (${challenge.name}, ${challenge.general.owner}, ${challenge.general.parent}, ${challenge.general.difficulty},
501-
${challenge.description}, ${challenge.isGlobal}, ${challenge.infoLink}, ${challenge.general.blurb}, ${challenge.general.instruction},
501+
${challenge.description}, ${challenge.infoLink}, ${challenge.general.blurb}, ${challenge.general.instruction},
502502
${challenge.general.enabled}, ${challenge.general.featured},
503503
${challenge.general.checkinComment}, ${challenge.general.checkinSource}, ${challenge.creation.overpassQL}, ${challenge.creation.remoteGeoJson},
504504
${challenge.creation.overpassTargetType}, ${challenge.status},
@@ -595,7 +595,6 @@ class ChallengeDAL @Inject() (
595595
val parentId = (updates \ "parentId").asOpt[Long].getOrElse(cachedItem.general.parent)
596596
val difficulty =
597597
(updates \ "difficulty").asOpt[Int].getOrElse(cachedItem.general.difficulty)
598-
val isGlobal = (updates \ "isGlobal").asOpt[Boolean].getOrElse(cachedItem.isGlobal)
599598
val description =
600599
(updates \ "description").asOpt[String].getOrElse(cachedItem.description.getOrElse(""))
601600
val infoLink =
@@ -716,7 +715,7 @@ class ChallengeDAL @Inject() (
716715
.getOrElse(cachedItem.extra.presets.getOrElse(null))
717716

718717
val updatedChallenge =
719-
SQL"""UPDATE challenges SET name = $name, owner_id = $ownerId, parent_id = $parentId, difficulty = $difficulty, is_global = $isGlobal,
718+
SQL"""UPDATE challenges SET name = $name, owner_id = $ownerId, parent_id = $parentId, difficulty = $difficulty,
720719
description = $description, info_link = $infoLink, blurb = $blurb, instruction = $instruction,
721720
enabled = $enabled, featured = $featured, checkin_comment = $checkinComment, checkin_source = $checkinSource, overpass_ql = $overpassQL,
722721
remote_geo_json = $remoteGeoJson, overpass_target_type = $overpassTargetType, status = $status, status_message = $statusMessage, default_priority = $defaultPriority,
@@ -1864,11 +1863,11 @@ class ChallengeDAL @Inject() (
18641863
case _ =>
18651864
}
18661865

1867-
if (searchParameters.challengeParams.archived == false) {
1866+
if (searchParameters.challengeParams.archived.getOrElse(false) == false) {
18681867
this.appendInWhereClause(whereClause, s"c.is_archived = false")
18691868
}
18701869

1871-
if (searchParameters.challengeParams.filterGlobal == true) {
1870+
if (searchParameters.challengeParams.global.getOrElse(true) == false) {
18721871
this.appendInWhereClause(whereClause, s"c.is_global = false")
18731872
}
18741873

app/org/maproulette/session/SearchParameters.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ case class SearchChallengeParameters(
3232
challengeStatus: Option[List[Int]] = None,
3333
requiresLocal: Option[Int] = Some(SearchParameters.CHALLENGE_REQUIRES_LOCAL_EXCLUDE),
3434
archived: Option[Boolean] = None,
35-
filterGlobal: Option[Boolean] = None
35+
global: Option[Boolean] = None
3636
)
3737

3838
case class SearchReviewParameters(
@@ -441,8 +441,8 @@ object SearchParameters {
441441
this.getIntParameter(request.getQueryString("cLocal"), Some(params.challengeParams.requiresLocal.getOrElse(SearchParameters.CHALLENGE_REQUIRES_LOCAL_EXCLUDE))),
442442
//includeArchived
443443
this.getBooleanParameter(request.getQueryString("ca"), params.challengeParams.archived),
444-
//filterGlobal
445-
this.getBooleanParameter(request.getQueryString("fg"), params.challengeParams.filterGlobal)
444+
//includeGlobal
445+
this.getBooleanParameter(request.getQueryString("cg"), params.challengeParams.global)
446446
),
447447
new SearchTaskParameters(
448448
//taskTags

0 commit comments

Comments
 (0)