LibEctoV2.Validators (lib_ecto v0.4.0)
View Source验证模块,提供数据验证和转换的功能。
此模块负责验证用户输入和系统生成的数据,确保数据的完整性和正确性。
Summary
Functions
验证列名是否为有效的 atom 列表或 :all。
验证过滤器列表是否有效。
验证请求参数是否为 map 类型。
验证提供的 repo 是否是有效的 Ecto repo。
验证提供的 schema 是否是有效的 Ecto schema。
Functions
@spec validate_columns(atom() | [atom()], module()) :: {:ok, atom() | [atom()]} | {:error, String.t()}
验证列名是否为有效的 atom 列表或 :all。
参数
columns: 列名列表或 :allschema: 验证列名的 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}
验证过滤器列表是否有效。
参数
filters: 过滤器列表
返回值
{:ok, filters}: 如果过滤器有效{:error, String.t()}: 如果过滤器无效
示例
iex> LibEctoV2.Validators.validate_filters([:id, :name])
{:ok, [:id, :name]}
验证请求参数是否为 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"}
验证提供的 repo 是否是有效的 Ecto repo。
参数
repo: 要验证的 repo 模块
返回值
{:ok, repo}: 如果 repo 有效{:error, String.t()}: 如果 repo 无效
示例
iex> LibEctoV2.Validators.validate_repo(MyApp.Repo)
{:ok, MyApp.Repo}
验证提供的 schema 是否是有效的 Ecto schema。
参数
schema: 要验证的 schema 模块
返回值
{:ok, schema}: 如果 schema 有效{:error, String.t()}: 如果 schema 无效
示例
iex> LibEctoV2.Validators.validate_schema(MyApp.User)
{:ok, MyApp.User}