Ltix.MembershipsService.Member (Ltix v0.1.0)

Copy Markdown View Source

A single member in a roster response from the memberships service.

Each member has a user_id (matching sub from launch JWTs) and roles (parsed into %Role{} structs). Additional fields like name, email, and picture depend on platform consent.

Examples

{:ok, member} = Ltix.MembershipsService.Member.from_json(%{
  "user_id" => "user-1",
  "roles" => ["http://purl.imsglobal.org/vocab/lis/v2/membership#Learner"],
  "name" => "Jane Doe",
  "email" => "jane@example.edu"
})

member.user_id
#=> "user-1"

member.name
#=> "Jane Doe"

hd(member.roles).name
#=> :learner

Summary

Functions

Parse a member from a JSON map in a membership container response.

Types

t()

@type t() :: %Ltix.MembershipsService.Member{
  email: String.t() | nil,
  family_name: String.t() | nil,
  given_name: String.t() | nil,
  lis_person_sourcedid: String.t() | nil,
  lti11_legacy_user_id: String.t() | nil,
  message: [Ltix.LaunchClaims.t()] | nil,
  middle_name: String.t() | nil,
  name: String.t() | nil,
  picture: String.t() | nil,
  roles: [Ltix.LaunchClaims.Role.t()],
  status: :active | :inactive | :deleted,
  unrecognized_roles: [String.t()],
  user_id: String.t()
}

Functions

from_json(json)

@spec from_json(map()) :: {:ok, t()} | {:error, Exception.t()}

Parse a member from a JSON map in a membership container response.

Returns {:ok, member} on success or {:error, exception} if required fields are missing or invalid.