Add ContentRatingFilter

This commit is contained in:
Syer10
2026-06-17 16:01:45 -04:00
parent b8772f60bf
commit 07ae17105b
3 changed files with 25 additions and 20 deletions

View File

@@ -21,6 +21,7 @@ import org.jetbrains.exposed.v1.jdbc.selectAll
import org.jetbrains.exposed.v1.jdbc.transactions.transaction import org.jetbrains.exposed.v1.jdbc.transactions.transaction
import suwayomi.tachidesk.graphql.directives.RequireAuth import suwayomi.tachidesk.graphql.directives.RequireAuth
import suwayomi.tachidesk.graphql.queries.filter.BooleanFilter import suwayomi.tachidesk.graphql.queries.filter.BooleanFilter
import suwayomi.tachidesk.graphql.queries.filter.ContentRatingFilter
import suwayomi.tachidesk.graphql.queries.filter.Filter import suwayomi.tachidesk.graphql.queries.filter.Filter
import suwayomi.tachidesk.graphql.queries.filter.HasGetOp import suwayomi.tachidesk.graphql.queries.filter.HasGetOp
import suwayomi.tachidesk.graphql.queries.filter.IntFilter import suwayomi.tachidesk.graphql.queries.filter.IntFilter
@@ -28,6 +29,7 @@ import suwayomi.tachidesk.graphql.queries.filter.LongFilter
import suwayomi.tachidesk.graphql.queries.filter.OpAnd import suwayomi.tachidesk.graphql.queries.filter.OpAnd
import suwayomi.tachidesk.graphql.queries.filter.StringFilter import suwayomi.tachidesk.graphql.queries.filter.StringFilter
import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompare import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompare
import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareEnum
import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareString import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareString
import suwayomi.tachidesk.graphql.queries.filter.applyOps import suwayomi.tachidesk.graphql.queries.filter.applyOps
import suwayomi.tachidesk.graphql.server.primitives.Cursor import suwayomi.tachidesk.graphql.server.primitives.Cursor
@@ -156,7 +158,7 @@ class ExtensionQuery {
val lang: StringFilter? = null, val lang: StringFilter? = null,
@GraphQLDeprecated("", ReplaceWith("storeIndexUrl")) @GraphQLDeprecated("", ReplaceWith("storeIndexUrl"))
val isNsfw: BooleanFilter? = null, val isNsfw: BooleanFilter? = null,
// val contentRating: EnumFilter<ContentRating>? = null, val contentRating: ContentRatingFilter? = null,
val isInstalled: BooleanFilter? = null, val isInstalled: BooleanFilter? = null,
val hasUpdate: BooleanFilter? = null, val hasUpdate: BooleanFilter? = null,
val isObsolete: BooleanFilter? = null, val isObsolete: BooleanFilter? = null,
@@ -177,7 +179,7 @@ class ExtensionQuery {
andFilterWithCompareString(ExtensionTable.versionName, versionName), andFilterWithCompareString(ExtensionTable.versionName, versionName),
andFilterWithCompare(ExtensionTable.versionCode, versionCodeLong), andFilterWithCompare(ExtensionTable.versionCode, versionCodeLong),
andFilterWithCompareString(ExtensionTable.lang, lang), andFilterWithCompareString(ExtensionTable.lang, lang),
// andFilterWithCompareEnum(ExtensionTable.contentRating, contentRating), andFilterWithCompareEnum(ExtensionTable.contentRating, contentRating),
andFilterWithCompare(ExtensionTable.isInstalled, isInstalled), andFilterWithCompare(ExtensionTable.isInstalled, isInstalled),
andFilterWithCompare(ExtensionTable.hasUpdate, hasUpdate), andFilterWithCompare(ExtensionTable.hasUpdate, hasUpdate),
andFilterWithCompare(ExtensionTable.isObsolete, isObsolete), andFilterWithCompare(ExtensionTable.isObsolete, isObsolete),

View File

@@ -21,12 +21,14 @@ import org.jetbrains.exposed.v1.jdbc.selectAll
import org.jetbrains.exposed.v1.jdbc.transactions.transaction import org.jetbrains.exposed.v1.jdbc.transactions.transaction
import suwayomi.tachidesk.graphql.directives.RequireAuth import suwayomi.tachidesk.graphql.directives.RequireAuth
import suwayomi.tachidesk.graphql.queries.filter.BooleanFilter import suwayomi.tachidesk.graphql.queries.filter.BooleanFilter
import suwayomi.tachidesk.graphql.queries.filter.ContentRatingFilter
import suwayomi.tachidesk.graphql.queries.filter.Filter import suwayomi.tachidesk.graphql.queries.filter.Filter
import suwayomi.tachidesk.graphql.queries.filter.HasGetOp import suwayomi.tachidesk.graphql.queries.filter.HasGetOp
import suwayomi.tachidesk.graphql.queries.filter.LongFilter import suwayomi.tachidesk.graphql.queries.filter.LongFilter
import suwayomi.tachidesk.graphql.queries.filter.OpAnd import suwayomi.tachidesk.graphql.queries.filter.OpAnd
import suwayomi.tachidesk.graphql.queries.filter.StringFilter import suwayomi.tachidesk.graphql.queries.filter.StringFilter
import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareEntity import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareEntity
import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareEnum
import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareString import suwayomi.tachidesk.graphql.queries.filter.andFilterWithCompareString
import suwayomi.tachidesk.graphql.queries.filter.applyOps import suwayomi.tachidesk.graphql.queries.filter.applyOps
import suwayomi.tachidesk.graphql.server.primitives.Cursor import suwayomi.tachidesk.graphql.server.primitives.Cursor
@@ -122,7 +124,7 @@ class SourceQuery {
val lang: StringFilter? = null, val lang: StringFilter? = null,
@GraphQLDeprecated("replace with contentRating == ContentRating.PORNOGRAPHIC", ReplaceWith("contentRating")) @GraphQLDeprecated("replace with contentRating == ContentRating.PORNOGRAPHIC", ReplaceWith("contentRating"))
val isNsfw: BooleanFilter? = null, val isNsfw: BooleanFilter? = null,
// val contentRating: EnumFilter<ContentRating>? = null, val contentRating: ContentRatingFilter? = null,
override val and: List<SourceFilter>? = null, override val and: List<SourceFilter>? = null,
override val or: List<SourceFilter>? = null, override val or: List<SourceFilter>? = null,
override val not: SourceFilter? = null, override val not: SourceFilter? = null,
@@ -132,7 +134,7 @@ class SourceQuery {
andFilterWithCompareEntity(SourceTable.id, id), andFilterWithCompareEntity(SourceTable.id, id),
andFilterWithCompareString(SourceTable.name, name), andFilterWithCompareString(SourceTable.name, name),
andFilterWithCompareString(SourceTable.lang, lang), andFilterWithCompareString(SourceTable.lang, lang),
// andFilterWithCompareEnum(SourceTable.contentRating, contentRating) andFilterWithCompareEnum(SourceTable.contentRating, contentRating),
) )
} }

View File

@@ -28,6 +28,7 @@ import org.jetbrains.exposed.v1.core.upperCase
import org.jetbrains.exposed.v1.core.wrap import org.jetbrains.exposed.v1.core.wrap
import org.jetbrains.exposed.v1.jdbc.Query import org.jetbrains.exposed.v1.jdbc.Query
import org.jetbrains.exposed.v1.jdbc.andWhere import org.jetbrains.exposed.v1.jdbc.andWhere
import suwayomi.tachidesk.graphql.types.ContentRating
class ILikeEscapeOp( class ILikeEscapeOp(
expr1: Expression<*>, expr1: Expression<*>,
@@ -329,23 +330,23 @@ data class DoubleFilter(
) )
} }
data class EnumFilter<T : Enum<T>>( data class ContentRatingFilter(
override val isNull: Boolean? = null, override val isNull: Boolean? = null,
override val equalTo: T? = null, override val equalTo: ContentRating? = null,
override val notEqualTo: T? = null, override val notEqualTo: ContentRating? = null,
override val notEqualToAll: List<T>? = null, override val notEqualToAll: List<ContentRating>? = null,
override val notEqualToAny: List<T>? = null, override val notEqualToAny: List<ContentRating>? = null,
override val distinctFrom: T? = null, override val distinctFrom: ContentRating? = null,
override val distinctFromAll: List<T>? = null, override val distinctFromAll: List<ContentRating>? = null,
override val distinctFromAny: List<T>? = null, override val distinctFromAny: List<ContentRating>? = null,
override val notDistinctFrom: T? = null, override val notDistinctFrom: ContentRating? = null,
override val `in`: List<T>? = null, override val `in`: List<ContentRating>? = null,
override val notIn: List<T>? = null, override val notIn: List<ContentRating>? = null,
override val lessThan: T? = null, override val lessThan: ContentRating? = null,
override val lessThanOrEqualTo: T? = null, override val lessThanOrEqualTo: ContentRating? = null,
override val greaterThan: T? = null, override val greaterThan: ContentRating? = null,
override val greaterThanOrEqualTo: T? = null, override val greaterThanOrEqualTo: ContentRating? = null,
) : ComparableScalarFilter<T> ) : ComparableScalarFilter<ContentRating>
data class StringFilter( data class StringFilter(
override val isNull: Boolean? = null, override val isNull: Boolean? = null,