fix: prevent sending group physical address if it's empty and allow empty text for timezone

As old addresses don't hold TZ information

Closes #1357

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2023-12-03 18:05:52 +01:00
parent 8795576865
commit 32caebb1d0
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773
3 changed files with 8 additions and 2 deletions

View file

@ -17,6 +17,8 @@ defmodule Mobilizon.GraphQL.Schema.Custom.Timezone do
@spec decode(Absinthe.Blueprint.Input.String.t()) :: {:ok, term} | :error
@spec decode(Absinthe.Blueprint.Input.Null.t()) :: {:ok, nil}
defp decode(%Absinthe.Blueprint.Input.String{value: ""}), do: {:ok, nil}
defp decode(%Absinthe.Blueprint.Input.String{value: value}) do
if Tzdata.zone_exists?(value),
do: {:ok, value},

View file

@ -287,12 +287,16 @@ const buildVariables = computed(() => {
preferredUsername: group.value.preferredUsername,
name: group.value.name,
summary: group.value.summary,
physicalAddress: cloneGroup.physicalAddress,
visibility: group.value.visibility,
openness: group.value.openness,
manuallyApprovesFollowers: group.value.manuallyApprovesFollowers,
};
if (cloneGroup.physicalAddress?.id || cloneGroup.physicalAddress?.geom) {
// @ts-expect-error No type for this variable
groupBasic.physicalAddress = cloneGroup.physicalAddress;
}
if (avatarFile.value) {
avatarObj = {
avatar: {

View file

@ -345,7 +345,7 @@ const currentAddress = computed({
return editableGroup.value?.physicalAddress ?? null;
},
set(address: IAddress | null) {
if (editableGroup.value && address) {
if (editableGroup.value && address && (address.id || address.geom)) {
editableGroup.value = {
...editableGroup.value,
physicalAddress: address,