Class: MisarMail::StreamingResource

Inherits:
Resource
  • Object
show all
Defined in:
lib/misar_mail/client.rb

Overview

The two Server-Sent Events endpoints.

Both live outside /v1, so they use API_BASE. Both are API-key authenticated and metered, so a plan refusal on open raises PlanLimitError exactly as a non-streaming call would.

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from MisarMail::Resource

Instance Method Details

#campaign_send(campaign_id, &block) ⇒ Object

GET /api/campaigns/id/send-stream — live send progress.



577
578
579
580
# File 'lib/misar_mail/client.rb', line 577

def campaign_send(campaign_id, &block)
  path = "/campaigns/#{ERB::Util.url_encode(campaign_id)}/send-stream"
  @client.sse_stream(:get, path, nil, &block)
end

#generate_email(**options, &block) ⇒ Object

POST /api/ai/generate-email/stream — token-by-token generation.

mail.streaming.generate_email(prompt: "...") do |frame|
print frame.data["delta"]
end

Returns an Enumerator when no block is given.



572
573
574
# File 'lib/misar_mail/client.rb', line 572

def generate_email(**options, &block)
  @client.sse_stream(:post, "/ai/generate-email/stream", options, &block)
end