Sha256: 9fa17920031173bf670acc4b507ea2847350333530aeb08e41741ea2b3b68233

Contents?: true

Size: 960 Bytes

Versions: 2

Compression:

Stored size: 960 Bytes

Contents

module Ruboty
  module Ducksboard
    module Actions
      class Analyze < Ruboty::Actions::Base
        def call
          conn = Faraday::Connection.new(url: 'https://pull.ducksboard.com/') do |builder|
            builder.use Faraday::Request::UrlEncoded
            builder.use Faraday::Adapter::NetHttp
          end

          conn.basic_auth(
            ENV['DUCKSBOARD_API_KEY'],
            'unused')

          results = message[:label_and_ids].split(",").map do |label_and_id|
            label = label_and_id.split(":")[0]
            id = label_and_id.split(":")[1]

            rep = conn.get "/values/#{id}/last?count=1"
            val = JSON.parse(rep.body)['data'].first['value']
            {id: id, label: label, value: val}
          end

          message.reply results.map{ |res| "#{res[:label]}: #{res[:value]}" }.join("\n")
        rescue
          message.reply("なにかに失敗したよ")
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruboty-ducksboard-0.0.2 lib/ruboty/ducksboard/actions/analyze.rb
ruboty-ducksboard-0.0.1 lib/ruboty/ducksboard/actions/analyze.rb