Module: MixinBot::API::App

Included in:
MixinBot::API
Defined in:
lib/mixin_bot/api/app.rb

Instance Method Summary collapse

Instance Method Details

#add_favorite_app(app_id, access_token: nil) ⇒ Object Also known as: favorite_app



72
73
74
75
76
# File 'lib/mixin_bot/api/app.rb', line 72

def add_favorite_app(app_id, access_token: nil)
  path = format('/apps/%<id>s/favorite', id: app_id)

  client.post path, access_token:
end

#app(app_id, access_token: nil) ⇒ Object Also known as: fetch_app



6
7
8
9
# File 'lib/mixin_bot/api/app.rb', line 6

def app(app_id, access_token: nil)
  path = format('/apps/%<id>s', id: app_id)
  client.get path, access_token:
end

#app_billing(app_id, access_token: nil) ⇒ Object



22
23
24
25
# File 'lib/mixin_bot/api/app.rb', line 22

def app_billing(app_id, access_token: nil)
  path = format('/safe/apps/%<id>s/billing', id: app_id)
  client.get path, access_token:
end

#app_properties(access_token: nil) ⇒ Object Also known as: app_property



17
18
19
# File 'lib/mixin_bot/api/app.rb', line 17

def app_properties(access_token: nil)
  client.get '/apps/property', access_token:
end

#apps(access_token: nil) ⇒ Object Also known as: fetch_apps



12
13
14
# File 'lib/mixin_bot/api/app.rb', line 12

def apps(access_token: nil)
  client.get '/apps', access_token:
end

#create_app(**kwargs) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/mixin_bot/api/app.rb', line 27

def create_app(**kwargs)
  payload = {
    redirect_uri: kwargs[:redirect_uri],
    home_uri: kwargs[:home_uri],
    name: kwargs[:name],
    description: kwargs[:description],
    icon_base64: kwargs[:icon_base64],
    category: kwargs[:category],
    capabilities: kwargs[:capabilities],
    resource_patterns: kwargs[:resource_patterns]
  }.compact
  client.post '/apps', **payload, access_token: kwargs[:access_token]
end

#favorite_apps(user_id = nil, access_token: nil) ⇒ Object



86
87
88
89
90
# File 'lib/mixin_bot/api/app.rb', line 86

def favorite_apps(user_id = nil, access_token: nil)
  path = format('/users/%<id>s/apps/favorite', id: user_id || config.app_id)

  client.get path, access_token:
end

#register_app_safe(app_id, spend_public_key:, signature_base64:, access_token: nil) ⇒ Object



67
68
69
70
# File 'lib/mixin_bot/api/app.rb', line 67

def register_app_safe(app_id, spend_public_key:, signature_base64:, access_token: nil)
  path = format('/safe/apps/%<id>s/register', id: app_id)
  client.post path, spend_public_key:, signature_base64:, access_token:
end

#remove_favorite_app(app_id, access_token: nil) ⇒ Object Also known as: unfavorite_app



79
80
81
82
83
# File 'lib/mixin_bot/api/app.rb', line 79

def remove_favorite_app(app_id, access_token: nil)
  path = format('/apps/%<id>s/unfavorite', id: app_id)

  client.post path, access_token:
end

#rotate_app_secret(app_id, access_token: nil) ⇒ Object Also known as: update_app_secret



56
57
58
59
# File 'lib/mixin_bot/api/app.rb', line 56

def rotate_app_secret(app_id, access_token: nil)
  path = format('/apps/%<id>s/secret', id: app_id)
  client.post path, access_token:
end

#transfer_app_ownership(receiver_user_id:, pin:, access_token: nil) ⇒ Object Also known as: migrate



92
93
94
95
96
# File 'lib/mixin_bot/api/app.rb', line 92

def transfer_app_ownership(receiver_user_id:, pin:, access_token: nil)
  path = format('/apps/%<app_id>s/transfer', app_id: config.app_id)
  tip = tip_or_legacy_pin_payload(pin, 'TIP:APP:OWNERSHIP:TRANSFER:', receiver_user_id)
  client.post path, user_id: receiver_user_id, pin_base64: tip[:pin_base64] || tip[:pin], access_token:
end

#update_app(app_id, **kwargs) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/mixin_bot/api/app.rb', line 41

def update_app(app_id, **kwargs)
  path = format('/apps/%<id>s', id: app_id)
  payload = {
    redirect_uri: kwargs[:redirect_uri],
    home_uri: kwargs[:home_uri],
    name: kwargs[:name],
    description: kwargs[:description],
    icon_base64: kwargs[:icon_base64],
    category: kwargs[:category],
    capabilities: kwargs[:capabilities],
    resource_patterns: kwargs[:resource_patterns]
  }.compact
  client.post path, **payload, access_token: kwargs[:access_token]
end

#update_app_safe_session(app_id, session_public_key:, access_token: nil) ⇒ Object



62
63
64
65
# File 'lib/mixin_bot/api/app.rb', line 62

def update_app_safe_session(app_id, session_public_key:, access_token: nil)
  path = format('/safe/apps/%<id>s/session', id: app_id)
  client.post path, session_public_key:, access_token:
end