From 8303eb13a5f2d37bc4d19609ae9925db09d39a14 Mon Sep 17 00:00:00 2001 From: Massedil Date: Tue, 11 Feb 2025 17:14:10 +0100 Subject: [PATCH] feat(config): add durationOfLongEvent in FullConfig query For #1568 --- lib/graphql/resolvers/config.ex | 1 + lib/graphql/schema/config.ex | 5 +++++ lib/mobilizon/config.ex | 3 +++ schema.graphql | 3 +++ src/graphql/config.ts | 1 + src/types/config.model.ts | 1 + 6 files changed, 14 insertions(+) diff --git a/lib/graphql/resolvers/config.ex b/lib/graphql/resolvers/config.ex index 6e4b2d7a3..57ffe14dc 100644 --- a/lib/graphql/resolvers/config.ex +++ b/lib/graphql/resolvers/config.ex @@ -94,6 +94,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do contact: Config.contact(), demo_mode: Config.instance_demo_mode?(), long_events: Config.instance_long_events?(), + duration_of_long_event: Config.instance_duration_of_long_event(), description: Config.instance_description(), long_description: Config.instance_long_description(), slogan: Config.instance_slogan(), diff --git a/lib/graphql/schema/config.ex b/lib/graphql/schema/config.ex index b4e68180a..9107b2062 100644 --- a/lib/graphql/schema/config.ex +++ b/lib/graphql/schema/config.ex @@ -32,6 +32,11 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do field(:demo_mode, :boolean, description: "Whether the demo mode is enabled") field(:long_events, :boolean, description: "Whether the long events mode is enabled") + + field(:duration_of_long_event, :integer, + description: "Events longer than this duration are considered long events" + ) + field(:country_code, :string, description: "The country code from the IP") field(:location, :lonlat, description: "The IP's location") field(:geocoding, :geocoding, description: "The instance's geocoding settings") diff --git a/lib/mobilizon/config.ex b/lib/mobilizon/config.ex index dc52baa1c..87039e365 100644 --- a/lib/mobilizon/config.ex +++ b/lib/mobilizon/config.ex @@ -181,6 +181,9 @@ defmodule Mobilizon.Config do @spec instance_long_events? :: boolean def instance_long_events?, do: instance_config()[:duration_of_long_event] > 0 + @spec instance_duration_of_long_event :: boolean + def instance_duration_of_long_event, do: instance_config()[:duration_of_long_event] + @spec instance_repository :: String.t() def instance_repository, do: instance_config()[:repository] diff --git a/schema.graphql b/schema.graphql index 1e5d1e707..43d06390a 100644 --- a/schema.graphql +++ b/schema.graphql @@ -202,6 +202,9 @@ type Config { "Whether the long events mode is enabled" longEvents: Boolean + "Events longer than this duration are considered long events" + durationOfLongEvent: Int + "The country code from the IP" countryCode: String diff --git a/src/graphql/config.ts b/src/graphql/config.ts index 27d3150e5..5e77eabd4 100644 --- a/src/graphql/config.ts +++ b/src/graphql/config.ts @@ -11,6 +11,7 @@ export const CONFIG = gql` registrationsAllowlist demoMode longEvents + durationOfLongEvent countryCode languages primaryColor diff --git a/src/types/config.model.ts b/src/types/config.model.ts index a88a37efc..4a29c1340 100644 --- a/src/types/config.model.ts +++ b/src/types/config.model.ts @@ -46,6 +46,7 @@ export interface IConfig { registrationsAllowlist: boolean; demoMode: boolean; longEvents: boolean; + durationOfLongEvent: number; countryCode: string; eventCategories: { id: string; label: string }[]; languages: string[];