Module: Telegraph::Account

Defined in:
lib/telegraph/api/account.rb,
lib/telegraph/validations/account.rb

Constant Summary collapse

CreateAccountSchema =
Dry::Validation.Schema do
  required(:short_name) { str? & size?(1..32) }
  optional(:author_name) { str? & size?(0..128) }
  optional(:author_url) { str? & size?(0..512) }
end
EditAccountInfoSchema =
Dry::Validation.Schema do
  required(:access_token) { str? }
  optional(:short_name) { str? & size?(1..32) }
  optional(:author_name) { str? & size?(0..128) }
  optional(:author_url) { str? & size?(0..512) }
end
GetAccountInfoSchema =
Dry::Validation.Schema do
  configure do
    def valid_fields?(value)
      (value - Telegraph::Types::Account::FIELDS).empty?
    end
  end

  required(:access_token) { str? }
  optional(:fields) { valid_fields? }
end
RevokeAccessTokenSchema =
Dry::Validation.Schema do
  required(:access_token) { str? }
end

Class Method Summary collapse

Class Method Details

.create(params) ⇒ Object



3
4
5
6
7
# File 'lib/telegraph/api/account.rb', line 3

def self.create(params)
  return nil unless CreateAccountSchema.(params).success?
  response = Telegraph::Core.request('createAccount', params)
  Types::Account.new(Hashie.symbolize_keys response['result'])
end

.edit(params) ⇒ Object



9
10
11
12
13
# File 'lib/telegraph/api/account.rb', line 9

def self.edit(params)
  return nil unless EditAccountInfoSchema.(params).success?
  response = Telegraph::Core.request('editAccountInfo', params)
  Types::Account.new(Hashie.symbolize_keys response['result'])
end

.info(params) ⇒ Object



15
16
17
18
19
20
# File 'lib/telegraph/api/account.rb', line 15

def self.info(params)
  return nil unless GetAccountInfoSchema.(params).success?
  params[:fields] = params[:fields].to_s
  response = Telegraph::Core.request('getAccountInfo', params)
  Types::Account.new(Hashie.symbolize_keys response['result'])
end

.revoke_token(params) ⇒ Object



22
23
24
25
26
27
# File 'lib/telegraph/api/account.rb', line 22

def self.revoke_token(params)
  return nil unless RevokeAccessTokenSchema.(params).success?
  response = Telegraph::Core.request('revokeAccessToken', params)
  return response['error'] if response['error']
  Types::Account.new(Hashie.symbolize_keys response['result'])
end