Sha256: 69d98ba239ac0c2239d1aa2fa6ad85ccc7e69e4ff8503e9d8ed090bd5441d68a
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true require 'plausible_api/stats/base' require 'plausible_api/stats/realtime/visitors' require 'plausible_api/stats/aggregate' require 'plausible_api/stats/timeseries' require 'plausible_api/stats/breakdown' require 'json' require "net/http" require "uri" require "cgi" module PlausibleApi class Client BASE_URL = 'https://plausible.io' def initialize(site_id, token) @site_id = site_id.to_s @token = token.to_s end def aggregate(options = {}) call PlausibleApi::Stats::Aggregate.new(options) end def timeseries(options = {}) call PlausibleApi::Stats::Timeseries.new(options) end def breakdown(options = {}) call PlausibleApi::Stats::Breakdown.new(options) end def realtime_visitors call PlausibleApi::Stats::Realtime::Visitors.new end def valid? realtime_visitors.is_a? Integer end private def call(api) raise StandardError.new "There is some invalid parameters." unless api.valid? url = "#{BASE_URL}#{api.request_url.gsub('$SITE_ID', @site_id)}" uri = URI.parse(url) req = Net::HTTP::Get.new(uri.request_uri) req.add_field('Authorization', "Bearer #{@token}") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true api.parse_response http.request(req).body end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
plausible_api-0.1.6 | lib/plausible_api/client.rb |
plausible_api-0.1.5 | lib/plausible_api/client.rb |