module Asterisk
class Client
include HTTParty
base_uri 'https://asterisk.dev/'
def initialize(session_key = nil)
@session_key = session_key
end
def get_session_key(login, password)
self.class.put('/api/auth', query: { login: login, password: password })
end
def get_contacts
self.class.get("/api/#{@session_key}/contacts")
end
def get_contact(id)
self.class.get("/api/#{@session_key}/contact/#{id}")
end
def create_contact
self.class.put("/api/#{@session_key}/create")
end
def logout
self.class.delete("/api/#{@session_key}/logout")
end
end
end
Прямо сейчас он работает, как показано нижеКак рефакторировать обертку с помощью singleton для настройки сеанса?
session_key = Asterisk::Client.new.get_session_key('login', 'pass')
client = Asterisk::Client.new(session_key)
client.get_contacts
Я хотел бы получить и установить ключ сеанса с помощью синглтон. Как это сделать?
вопрос здесь ваш аргумент в Initialize, нужно ли это? может ли это быть перенесено другим методом? – apneadiving
Да, я хотел бы сначала пропустить заданный ключ сеанса, просто настроить учетные данные '' login'' и '' password' в инициализации – tomekfranek
, почему это? вам нужно изменить логин и пароль для каждого пользователя или это приложение широко? – apneadiving