69 lines
2.3 KiB
Ruby
69 lines
2.3 KiB
Ruby
|
|
# frozen_string_literal: true
|
||
|
|
|
||
|
|
module Firecrawl
|
||
|
|
module Models
|
||
|
|
class Monitor
|
||
|
|
attr_reader :id, :name, :status, :schedule, :next_run_at, :last_run_at,
|
||
|
|
:current_check_id, :targets, :webhook, :notification,
|
||
|
|
:retention_days, :estimated_credits_per_month,
|
||
|
|
:last_check_summary, :created_at, :updated_at
|
||
|
|
|
||
|
|
def initialize(data)
|
||
|
|
@id = data["id"]
|
||
|
|
@name = data["name"]
|
||
|
|
@status = data["status"]
|
||
|
|
@schedule = data["schedule"]
|
||
|
|
@next_run_at = data["nextRunAt"]
|
||
|
|
@last_run_at = data["lastRunAt"]
|
||
|
|
@current_check_id = data["currentCheckId"]
|
||
|
|
@targets = data["targets"] || []
|
||
|
|
@webhook = data["webhook"]
|
||
|
|
@notification = data["notification"]
|
||
|
|
@retention_days = data["retentionDays"]
|
||
|
|
@estimated_credits_per_month = data["estimatedCreditsPerMonth"]
|
||
|
|
@last_check_summary = data["lastCheckSummary"]
|
||
|
|
@created_at = data["createdAt"]
|
||
|
|
@updated_at = data["updatedAt"]
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
class MonitorCheck
|
||
|
|
attr_reader :id, :monitor_id, :status, :trigger, :scheduled_for,
|
||
|
|
:started_at, :finished_at, :estimated_credits,
|
||
|
|
:reserved_credits, :actual_credits, :billing_status,
|
||
|
|
:summary, :target_results, :notification_status, :error,
|
||
|
|
:created_at, :updated_at
|
||
|
|
|
||
|
|
def initialize(data)
|
||
|
|
@id = data["id"]
|
||
|
|
@monitor_id = data["monitorId"]
|
||
|
|
@status = data["status"]
|
||
|
|
@trigger = data["trigger"]
|
||
|
|
@scheduled_for = data["scheduledFor"]
|
||
|
|
@started_at = data["startedAt"]
|
||
|
|
@finished_at = data["finishedAt"]
|
||
|
|
@estimated_credits = data["estimatedCredits"]
|
||
|
|
@reserved_credits = data["reservedCredits"]
|
||
|
|
@actual_credits = data["actualCredits"]
|
||
|
|
@billing_status = data["billingStatus"]
|
||
|
|
@summary = data["summary"] || {}
|
||
|
|
@target_results = data["targetResults"]
|
||
|
|
@notification_status = data["notificationStatus"]
|
||
|
|
@error = data["error"]
|
||
|
|
@created_at = data["createdAt"]
|
||
|
|
@updated_at = data["updatedAt"]
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
class MonitorCheckDetail < MonitorCheck
|
||
|
|
attr_accessor :pages, :next_url
|
||
|
|
|
||
|
|
def initialize(data)
|
||
|
|
super
|
||
|
|
@pages = data["pages"] || []
|
||
|
|
@next_url = data["next"]
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|