Class: Privy::Resources::Users

Inherits:
Object
  • Object
show all
Defined in:
lib/privy/resources/users.rb

Overview

Operations related to users

Direct Known Subclasses

Services::Users

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Users

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Users.

Parameters:



444
445
446
# File 'lib/privy/resources/users.rb', line 444

def initialize(client:)
  @client = client
end

Instance Method Details

#create(linked_accounts:, custom_metadata: nil, wallets: nil, request_options: {}) ⇒ Privy::Models::User

Create a new user with linked accounts. Optionally pre-generate embedded wallets for the user.



23
24
25
26
# File 'lib/privy/resources/users.rb', line 23

def create(params)
  parsed, options = Privy::UserCreateParams.dump_request(params)
  @client.request(method: :post, path: "v1/users", body: parsed, model: Privy::User, options: options)
end

#delete(user_id, request_options: {}) ⇒ nil

Delete a user by user ID.

Parameters:

  • user_id (String)

    ID of the user.

  • request_options (Privy::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

  • (nil)

See Also:



63
64
65
66
67
68
69
70
# File 'lib/privy/resources/users.rb', line 63

def delete(user_id, params = {})
  @client.request(
    method: :delete,
    path: ["v1/users/%1$s", user_id],
    model: NilClass,
    options: params[:request_options]
  )
end

#get(user_id, request_options: {}) ⇒ Privy::Models::User

Get a user by user ID.

Parameters:

Returns:

See Also:



83
84
85
86
87
88
89
90
# File 'lib/privy/resources/users.rb', line 83

def get(user_id, params = {})
  @client.request(
    method: :get,
    path: ["v1/users/%1$s", user_id],
    model: Privy::User,
    options: params[:request_options]
  )
end

#get_by_custom_auth_id(custom_user_id:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their custom auth ID.

Parameters:

Returns:

See Also:



102
103
104
105
106
107
108
109
110
111
# File 'lib/privy/resources/users.rb', line 102

def get_by_custom_auth_id(params)
  parsed, options = Privy::UserGetByCustomAuthIDParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/custom_auth/id",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_discord_username(username:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Discord username.

Parameters:

Returns:

See Also:



123
124
125
126
127
128
129
130
131
132
# File 'lib/privy/resources/users.rb', line 123

def get_by_discord_username(params)
  parsed, options = Privy::UserGetByDiscordUsernameParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/discord/username",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_email_address(address:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their email address.

Parameters:

Returns:

See Also:



144
145
146
147
148
149
150
151
152
153
# File 'lib/privy/resources/users.rb', line 144

def get_by_email_address(params)
  parsed, options = Privy::UserGetByEmailAddressParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/email/address",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_farcaster_id(fid:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Farcaster ID.

Parameters:

Returns:

See Also:



165
166
167
168
169
170
171
172
173
174
# File 'lib/privy/resources/users.rb', line 165

def get_by_farcaster_id(params)
  parsed, options = Privy::UserGetByFarcasterIDParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/farcaster/fid",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_github_username(username:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Github username.

Parameters:

Returns:

See Also:



186
187
188
189
190
191
192
193
194
195
# File 'lib/privy/resources/users.rb', line 186

def get_by_github_username(params)
  parsed, options = Privy::UserGetByGitHubUsernameParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/github/username",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_phone_number(number:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their phone number.

Parameters:

Returns:

See Also:



207
208
209
210
211
212
213
214
215
216
# File 'lib/privy/resources/users.rb', line 207

def get_by_phone_number(params)
  parsed, options = Privy::UserGetByPhoneNumberParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/phone/number",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_smart_wallet_address(address:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their smart wallet address.

Parameters:

Returns:

See Also:



228
229
230
231
232
233
234
235
236
237
# File 'lib/privy/resources/users.rb', line 228

def get_by_smart_wallet_address(params)
  parsed, options = Privy::UserGetBySmartWalletAddressParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/smart_wallet/address",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_telegram_user_id(telegram_user_id:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Telegram user ID.

Parameters:

Returns:

See Also:



249
250
251
252
253
254
255
256
257
258
# File 'lib/privy/resources/users.rb', line 249

def get_by_telegram_user_id(params)
  parsed, options = Privy::UserGetByTelegramUserIDParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/telegram/telegram_user_id",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_telegram_username(username:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Telegram username.

Parameters:

Returns:

See Also:



270
271
272
273
274
275
276
277
278
279
# File 'lib/privy/resources/users.rb', line 270

def get_by_telegram_username(params)
  parsed, options = Privy::UserGetByTelegramUsernameParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/telegram/username",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_twitter_subject(subject:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Twitter subject.

Parameters:

Returns:

See Also:



291
292
293
294
295
296
297
298
299
300
# File 'lib/privy/resources/users.rb', line 291

def get_by_twitter_subject(params)
  parsed, options = Privy::UserGetByTwitterSubjectParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/twitter/subject",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_twitter_username(username:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their Twitter username.

Parameters:

Returns:

See Also:



312
313
314
315
316
317
318
319
320
321
# File 'lib/privy/resources/users.rb', line 312

def get_by_twitter_username(params)
  parsed, options = Privy::UserGetByTwitterUsernameParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/twitter/username",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#get_by_wallet_address(address:, request_options: {}) ⇒ Privy::Models::User

Looks up a user by their wallet address.

Parameters:

Returns:

See Also:



333
334
335
336
337
338
339
340
341
342
# File 'lib/privy/resources/users.rb', line 333

def get_by_wallet_address(params)
  parsed, options = Privy::UserGetByWalletAddressParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/wallet/address",
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#list(cursor: nil, limit: nil, request_options: {}) ⇒ Privy::Internal::Cursor<Privy::Models::User>

Get all users in your app.

Parameters:

Returns:

See Also:



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/privy/resources/users.rb', line 39

def list(params = {})
  parsed, options = Privy::UserListParams.dump_request(params)
  query = Privy::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "v1/users",
    query: query,
    page: Privy::Internal::Cursor,
    model: Privy::User,
    options: options
  )
end

#pregenerate_wallets(user_id, wallets:, request_options: {}) ⇒ Privy::Models::User

Creates an embedded wallet for an existing user.

Parameters:

Returns:

See Also:



357
358
359
360
361
362
363
364
365
366
# File 'lib/privy/resources/users.rb', line 357

def pregenerate_wallets(user_id, params)
  parsed, options = Privy::UserPregenerateWalletsParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["v1/users/%1$s/wallets", user_id],
    body: parsed,
    model: Privy::User,
    options: options
  )
end

#search(body:, request_options: {}) ⇒ Privy::Models::User

Search users by search term, emails, phone numbers, or wallet addresses.



378
379
380
381
382
383
384
385
386
387
# File 'lib/privy/resources/users.rb', line 378

def search(params)
  parsed, options = Privy::UserSearchParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/users/search",
    body: parsed[:body],
    model: Privy::User,
    options: options
  )
end

#set_custom_metadata(user_id, custom_metadata:, request_options: {}) ⇒ Privy::Models::User

Adds custom metadata to a user by user ID.

Parameters:

  • user_id (String)

    ID of the user.

  • custom_metadata (Hash{Symbol=>String, Float, Boolean})

    Custom metadata associated with the user.

  • request_options (Privy::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



402
403
404
405
406
407
408
409
410
411
# File 'lib/privy/resources/users.rb', line 402

def (user_id, params)
  parsed, options = Privy::UserSetCustomMetadataParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["v1/users/%1$s/custom_metadata", user_id],
    body: parsed,
    model: Privy::User,
    options: options
  )
end

Unlinks a user linked account.

Parameters:

Returns:

See Also:



430
431
432
433
434
435
436
437
438
439
# File 'lib/privy/resources/users.rb', line 430

def (user_id, params)
  parsed, options = Privy::UserUnlinkLinkedAccountParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["v1/users/%1$s/accounts/unlink", user_id],
    body: parsed,
    model: Privy::User,
    options: options
  )
end