diff --git a/lib/sukaato/vschemas.ex b/lib/sukaato/vschemas.ex index ca1c73f..03752c2 100644 --- a/lib/sukaato/vschemas.ex +++ b/lib/sukaato/vschemas.ex @@ -1,13 +1,8 @@ defmodule Sukaato.Vschemas do @moduledoc """ - Provide validation schemas for tail parameters - of `Validate.validate`. + Provides validation schemas for tail parameters of `Validate.validate/2`. """ - @doc """ - Schema for validating updates to column `:affil` on table - corresponding to `Sukaato.User`. - """ @affil_vschema [ required: false, type: :list, @@ -15,78 +10,45 @@ defmodule Sukaato.Vschemas do required: true, type: :map, map: %{ - affil_name: [required: false, type: :string], - affil_uri: [required: true, type: :string], - affil_icon: [required: true, type: :string], - affil_target: [required: false, type: :string, in: [ - "_blank", - "_parent", - "_self", - "_top" - ] - ] + name: [required: false, type: :string], + icon_uri: [required: true, type: :string], + icon_name: [required: true, type: :string], + protocol: [required: true, type: :string], + address: [required: true, type: :string], + scheme_postfix: [required: true, type: :string] } ] ] - @doc """ - Schema for validating updates to column `:perms` on table - corresponding to `Sukaato.User`. + Outputs schema for validating updates to column `:affil` on table corresponding to `Sukaato.User`. """ + def affil, do: @affil_vschema + @perms_vschema [ required: true, type: :list, list: [ required: true, - type: :string, + type: :integer, #@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] ] ] - @doc """ - Schema for validating updates to column `:pub_keys` on table - corresponding to `Sukaato.User`. + Outputs schema for validating updates to column `:perms` on table corresponding to `Sukaato.User`. """ - @pubkeys_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] - } + def perms, do: @perms_vschema + @pubkeys_vschema [ + required: true, + type: :map + ] @doc """ - Schema for validating updates to column `:resume` on table - corresponding to `Sukaato.Folio`. + Outputs schema for validating updates to column `:pub_keys` on table corresponding to `Sukaato.User`. """ + def pub_keys, do: @pubkeys_vschema + + # @TODO change below map string keys to atoms @resume_vschema %{ "basics" => [ required: true, @@ -328,11 +290,11 @@ defmodule Sukaato.Vschemas do ] ] } - @doc """ - Schema for validating updates to column `:showcase` on table - corresponding to `Sukaato.Folio`. + Outputs schema for validating updates to column `:resume` on table corresponding to `Sukaato.Folio`. """ + def resume, do: @resume_vschema + @showcase_vschema %{ audio: [ 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