Add string length validations to user-input schemas

This commit is contained in:
Claudio Ortolina
2026-03-05 20:42:44 +00:00
parent 70392857fa
commit d738032f8a
4 changed files with 6 additions and 0 deletions
@@ -21,6 +21,7 @@ defmodule MusicLibrary.OnlineStoreTemplates.OnlineStoreTemplate do
|> validate_required([:name, :url_template]) |> validate_required([:name, :url_template])
|> validate_length(:name, min: 1, max: 100) |> validate_length(:name, min: 1, max: 100)
|> validate_length(:url_template, min: 1, max: 500) |> validate_length(:url_template, min: 1, max: 500)
|> validate_length(:description, max: 1000)
|> validate_url_template() |> validate_url_template()
end end
@@ -20,6 +20,8 @@ defmodule MusicLibrary.RecordSets.RecordSet do
record_set record_set
|> cast(attrs, [:name, :description]) |> cast(attrs, [:name, :description])
|> validate_required([:name]) |> validate_required([:name])
|> validate_length(:name, min: 1, max: 100)
|> validate_length(:description, max: 10_000)
end end
def count_by_status(record_set) do def count_by_status(record_set) do
@@ -29,6 +29,8 @@ defmodule MusicLibrary.ScrobbleRules.ScrobbleRule do
scrobble_rule scrobble_rule
|> cast(attrs, [:type, :match_value, :target_musicbrainz_id, :enabled, :description]) |> cast(attrs, [:type, :match_value, :target_musicbrainz_id, :enabled, :description])
|> validate_required([:type, :match_value, :target_musicbrainz_id]) |> validate_required([:type, :match_value, :target_musicbrainz_id])
|> validate_length(:match_value, min: 1, max: 500)
|> validate_length(:description, max: 1000)
|> unique_constraint([:type, :match_value], error_key: :match_value) |> unique_constraint([:type, :match_value], error_key: :match_value)
end end
end end
+1
View File
@@ -14,5 +14,6 @@ defmodule MusicLibrary.Secrets.Secret do
secret secret
|> cast(attrs, [:name, :value]) |> cast(attrs, [:name, :value])
|> validate_required([:name, :value]) |> validate_required([:name, :value])
|> validate_length(:name, min: 1, max: 100)
end end
end end