Class: MagicAdmin::Resource::User

Inherits:
Object
  • Object
show all
Defined in:
lib/magic-admin/resource/user.rb

Overview

The user resource and its methods are accessible on the Magic instance by the User attribute. It provides methods to interact with the User.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(magic) ⇒ User

The constructor allows you to create user object when your application interacting with the Magic API

Arguments:

magic: A Magic object.

Returns:

A user object that provides access to all the supported resources.

Examples:

User.new(<magic>)


26
27
28
# File 'lib/magic-admin/resource/user.rb', line 26

def initialize(magic)
  @magic = magic
end

Instance Attribute Details

#magicObject (readonly)

attribute reader for magic client object



13
14
15
# File 'lib/magic-admin/resource/user.rb', line 13

def magic
  @magic
end

Instance Method Details

#get_metadata_by_issuer(issuer) ⇒ Object

Description:

Method Retrieves information about the user by
the supplied issuer

Arguments:

issuer: Extracted iss component of DID Token generated by a Magic user
  on the client-side.

Returns:

 information about the user


40
41
42
43
44
45
# File 'lib/magic-admin/resource/user.rb', line 40

def (issuer)
  headers = MagicAdmin::Util.headers(magic.secret_key)
  options = { params: { issuer: issuer }, headers: headers }
  magic.http_client
       .call(:get, "/v1/admin/auth/user/get", options)
end

#get_metadata_by_public_address(public_address) ⇒ Object

Description:

Method Retrieves information about the user by
the supplied public_address

Arguments:

public_address: Extracted The user's Ethereum public address component
  of DID Token generated by a Magic user on the client-side.

Returns:

 information about the user


57
58
59
60
# File 'lib/magic-admin/resource/user.rb', line 57

def (public_address)
  issuer = token.construct_issuer_with_public_address(public_address)
  (issuer)
end

#get_metadata_by_token(did_token) ⇒ Object

Description:

Method Retrieves information about the user by
the supplied DID Token

Arguments:

did_token: A DID Token generated by a Magic user on the client-side.

Returns:

 information about the user


71
72
73
74
# File 'lib/magic-admin/resource/user.rb', line 71

def (did_token)
  issuer = token.get_issuer(did_token)
  (issuer)
end

#logout_by_issuer(issuer) ⇒ Object

Description:

Method logs a user out of all Magic SDK sessions by
the supplied issuer

Arguments:

issuer: Extracted iss component of DID Token generated by a Magic user
  on the client-side.

Returns:

Magic Response


86
87
88
89
90
91
# File 'lib/magic-admin/resource/user.rb', line 86

def logout_by_issuer(issuer)
  headers = MagicAdmin::Util.headers(magic.secret_key)
  options = { params: { issuer: issuer }, headers: headers }
  magic.http_client
       .call(:post, "/v2/admin/auth/user/logout", options)
end

#logout_by_public_address(public_address) ⇒ Object

Description:

Method logs a user out of all Magic SDK sessions by
the supplied public_address

Arguments:

public_address: Extracted the user's Ethereum public address component
of DID Token generated by a Magic user on the client-side.

Returns:

Magic Response


103
104
105
106
# File 'lib/magic-admin/resource/user.rb', line 103

def logout_by_public_address(public_address)
  issuer = token.construct_issuer_with_public_address(public_address)
  logout_by_issuer(issuer)
end

#logout_by_token(did_token) ⇒ Object

Description:

Method logs a user out of all Magic SDK sessions by
the supplied DID Token

Arguments:

did_token: A DID Token generated by a Magic user on the client-side.

Returns:

Magic Response


117
118
119
120
# File 'lib/magic-admin/resource/user.rb', line 117

def logout_by_token(did_token)
  issuer = token.get_issuer(did_token)
  logout_by_issuer(issuer)
end