LibEctoV2.Validators (lib_ecto v0.4.0)

View Source

验证模块,提供数据验证和转换的功能。

此模块负责验证用户输入和系统生成的数据,确保数据的完整性和正确性。

Summary

Functions

验证列名是否为有效的 atom 列表或 :all。

验证过滤器列表是否有效。

验证请求参数是否为 map 类型。

验证提供的 repo 是否是有效的 Ecto repo。

验证提供的 schema 是否是有效的 Ecto schema。

Functions

validate_columns(columns, schema)

@spec validate_columns(atom() | [atom()], module()) ::
  {:ok, atom() | [atom()]} | {:error, String.t()}

验证列名是否为有效的 atom 列表或 :all。

参数

  • columns: 列名列表或 :all
  • schema: 验证列名的 schema 模块

返回值

  • {:ok, columns}: 如果列名有效
  • {:error, String.t()}: 如果列名无效

示例

iex> LibEctoV2.Validators.validate_columns([:id, :name], MyApp.User)
{:ok, [:id, :name]}

iex> LibEctoV2.Validators.validate_columns(:all, MyApp.User)
{:ok, :all}

validate_filters(filters)

@spec validate_filters(list()) :: {:ok, list()} | {:error, String.t()}

验证过滤器列表是否有效。

参数

  • filters: 过滤器列表

返回值

  • {:ok, filters}: 如果过滤器有效
  • {:error, String.t()}: 如果过滤器无效

示例

iex> LibEctoV2.Validators.validate_filters([:id, :name])
{:ok, [:id, :name]}

validate_params(params)

@spec validate_params(any()) :: {:ok, map()} | {:error, String.t()}

验证请求参数是否为 map 类型。

参数

  • params: 要验证的参数

返回值

  • {:ok, params}: 如果参数是有效的 map
  • {:error, String.t()}: 如果参数无效

示例

iex> LibEctoV2.Validators.validate_params(%{name: "test"})
{:ok, %{name: "test"}}

iex> LibEctoV2.Validators.validate_params("not a map")
{:error, "Params must be a map"}

validate_repo(repo)

@spec validate_repo(module()) :: {:ok, module()} | {:error, String.t()}

验证提供的 repo 是否是有效的 Ecto repo。

参数

  • repo: 要验证的 repo 模块

返回值

  • {:ok, repo}: 如果 repo 有效
  • {:error, String.t()}: 如果 repo 无效

示例

iex> LibEctoV2.Validators.validate_repo(MyApp.Repo)
{:ok, MyApp.Repo}

validate_schema(schema)

@spec validate_schema(module()) :: {:ok, module()} | {:error, String.t()}

验证提供的 schema 是否是有效的 Ecto schema。

参数

  • schema: 要验证的 schema 模块

返回值

  • {:ok, schema}: 如果 schema 有效
  • {:error, String.t()}: 如果 schema 无效

示例

iex> LibEctoV2.Validators.validate_schema(MyApp.User)
{:ok, MyApp.User}