Discogs.Models.User (discogs_shuffle v0.2.1) View Source

Ecto model representing a Discogs user.

Link to this section Summary

Functions

Validates the params and returns an Ecto changeset on success.

Creates the User.

Gets the User by name.

Gets or creates the User.

Link to this section Types

Specs

params() :: %{
  optional(:name) => String.t(),
  optional(:releases) => [
    %Discogs.Models.Release{
      __meta__: term(),
      artists: term(),
      discogs_id: term(),
      id: term(),
      inserted_at: term(),
      name: term(),
      records: term(),
      updated_at: term(),
      users: term()
    },
    ...
  ]
}

Link to this section Functions

Link to this function

changeset(user, params \\ %{})

View Source

Specs

changeset(
  %Discogs.Models.User{
    __meta__: term(),
    id: term(),
    inserted_at: term(),
    name: term(),
    records: term(),
    releases: term(),
    updated_at: term()
  },
  params()
) :: Ecto.Changeset.t()

Validates the params and returns an Ecto changeset on success.

Name length / format validation is reflective of the validation set by Discogs itself.

cf. https://bit.ly/3udL05l

Specs

create_by_name(name :: String.t()) :: %Discogs.Models.User{
  __meta__: term(),
  id: term(),
  inserted_at: term(),
  name: term(),
  records: term(),
  releases: term(),
  updated_at: term()
}

Creates the User.

Specs

get_by_name(name :: String.t()) ::
  %Discogs.Models.User{
    __meta__: term(),
    id: term(),
    inserted_at: term(),
    name: term(),
    records: term(),
    releases: term(),
    updated_at: term()
  }
  | nil

Gets the User by name.

Link to this function

get_or_create_by_name(name)

View Source

Specs

get_or_create_by_name(name :: String.t()) :: %Discogs.Models.User{
  __meta__: term(),
  id: term(),
  inserted_at: term(),
  name: term(),
  records: term(),
  releases: term(),
  updated_at: term()
}

Gets or creates the User.