Added, reqrote and appended keys to validation schemas

This commit is contained in:
Alex Tavarez
2025-09-02 20:20:07 -04:00
parent 417eef3ab4
commit fe508ec21e

View File

@@ -1,13 +1,8 @@
defmodule Sukaato.Vschemas do defmodule Sukaato.Vschemas do
@moduledoc """ @moduledoc """
Provide validation schemas for tail parameters Provides validation schemas for tail parameters of `Validate.validate/2`.
of `Validate.validate`.
""" """
@doc """
Schema for validating updates to column `:affil` on table
corresponding to `Sukaato.User`.
"""
@affil_vschema [ @affil_vschema [
required: false, required: false,
type: :list, type: :list,
@@ -15,78 +10,45 @@ defmodule Sukaato.Vschemas do
required: true, required: true,
type: :map, type: :map,
map: %{ map: %{
affil_name: [required: false, type: :string], name: [required: false, type: :string],
affil_uri: [required: true, type: :string], icon_uri: [required: true, type: :string],
affil_icon: [required: true, type: :string], icon_name: [required: true, type: :string],
affil_target: [required: false, type: :string, in: [ protocol: [required: true, type: :string],
"_blank", address: [required: true, type: :string],
"_parent", scheme_postfix: [required: true, type: :string]
"_self",
"_top"
]
]
} }
] ]
] ]
@doc """ @doc """
Schema for validating updates to column `:perms` on table Outputs schema for validating updates to column `:affil` on table corresponding to `Sukaato.User`.
corresponding to `Sukaato.User`.
""" """
def affil, do: @affil_vschema
@perms_vschema [ @perms_vschema [
required: true, required: true,
type: :list, type: :list,
list: [ list: [
required: true, required: true,
type: :string, type: :integer,
#@TODO create function generating these numbers from first 4 numbers #@TODO create function generating these numbers from first 4 numbers
in: [1, 2, 4, 8, 9, 10, 12, 5, 7, 3, 6, 11, 13, 14, 15] in: [1, 2, 4, 8, 9, 10, 12, 5, 7, 3, 6, 11, 13, 14, 15]
] ]
] ]
@doc """ @doc """
Schema for validating updates to column `:pub_keys` on table Outputs schema for validating updates to column `:perms` on table corresponding to `Sukaato.User`.
corresponding to `Sukaato.User`.
""" """
@pubkeys_vschema %{ def perms, do: @perms_vschema
oauth: [
required: false,
type: :list,
list: [
required: true,
type: :map,
map: %{
access_token: [required: true, type: :string],
auth_code: [required: false, type: :string],
refresh_token: [required: false, type: :string]
}
]
],
fido2: [
required: false,
type: :map,
map: %{
u2f: [
required: false,
type: :list,
list: [
required: true,
type: :map,
map: %{
name: [required: true, type: :string],
credential: [required: true, type: :string]
}
]
],
}
],
totp_secret: [required: false, type: :string]
}
@pubkeys_vschema [
required: true,
type: :map
]
@doc """ @doc """
Schema for validating updates to column `:resume` on table Outputs schema for validating updates to column `:pub_keys` on table corresponding to `Sukaato.User`.
corresponding to `Sukaato.Folio`.
""" """
def pub_keys, do: @pubkeys_vschema
# @TODO change below map string keys to atoms
@resume_vschema %{ @resume_vschema %{
"basics" => [ "basics" => [
required: true, required: true,
@@ -328,11 +290,11 @@ defmodule Sukaato.Vschemas do
] ]
] ]
} }
@doc """ @doc """
Schema for validating updates to column `:showcase` on table Outputs schema for validating updates to column `:resume` on table corresponding to `Sukaato.Folio`.
corresponding to `Sukaato.Folio`.
""" """
def resume, do: @resume_vschema
@showcase_vschema %{ @showcase_vschema %{
audio: [ audio: [
required: false, required: false,
@@ -400,4 +362,8 @@ defmodule Sukaato.Vschemas do
] ]
] ]
} }
@doc """
Outputs schema for validating updates to column `:showcase` on table corresponding to `Sukaato.Folio`.
"""
def showcase, do: @showcase_vschema
end end