Added, reqrote and appended keys to validation schemas
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user