Ускорьте Ruby класс, чтобы избежать запросов к JIRA и Slack API - PullRequest
0 голосов
/ 04 февраля 2020

Мой чистый Ruby класс извлекает имена пользователей из Jira API, чтобы преобразовать его в адрес электронной почты и передать эти адреса электронной почты другому классу, на основе которого извлекается Slack ID.

module Request
  class GetUser
    def call
      setup_email
    end

    private

    def setup_email
      devops_email = dev_role['actors'].map { |user| "#{user['name']}@example.com" }
      devops_email.each do |email|
        ::Slack::GetUserId.new(email: email).call
      end
    end

    def dev_role
      HTTParty.get('https://company_name.atlassian.net/rest/api/3/project/1234/role/1234',
                   basic_auth: { username: 'user', password: 'pass' },
                   headers: { 'content-type' => 'application/json' })
    end
  end
end

Потому что выше класс будет называться каждый день (AWS лямбда-график), я хочу ускорить класс. Что я должен использовать для достижения этого? Должен ли я использовать какую-то базу данных (возможно, Dynamodb?) Для сохранения пользовательских данных (userID и user email) и сделать запрос, чтобы проверить, изменились ли данные (например, имя пользователя)?

Или, может быть, я должен изменить какую-то реализацию и оставить эти запросы без сохранения данных в базе данных?

...