Repository navigation
Add Sandbox Attachments API #83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
c1eef2d
1bd16fa
26a26cc
a3d8e9a
64bfecc
ce977aa
93b6f29
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,39 @@ | ||||||
| # frozen_string_literal: true | ||||||
|
|
||||||
| module Mailtrap | ||||||
| # Data Transfer Object for SandboxAttachment | ||||||
| # @see https://docs.mailtrap.io/developers/email-sandbox/email-sandbox-api/attachments | ||||||
| # @attr_reader id [Integer] The project ID | ||||||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||||||
| # @attr_reader message_id [Integer] The message ID | ||||||
| # @attr_reader filename [String] The attachment filename | ||||||
| # @attr_reader attachment_type [String] The attachment type | ||||||
| # @attr_reader content_type [String] The attachment content type | ||||||
| # @attr_reader content_id [String] The attachment content ID | ||||||
| # @attr_reader transfer_encoding [String] The attachment transfer encoding | ||||||
| # @attr_reader attachment_size [Integer] The attachment size in bytes | ||||||
| # @attr_reader created_at [String] The attachment creation timestamp | ||||||
| # @attr_reader updated_at [String] The attachment update timestamp | ||||||
| # @attr_reader attachment_human_size [String] The attachment size in human-readable format | ||||||
| # @attr_reader download_path [String] The attachment download path | ||||||
| # | ||||||
| SandboxAttachment = Struct.new( | ||||||
| :id, | ||||||
| :message_id, | ||||||
| :filename, | ||||||
| :attachment_type, | ||||||
| :content_type, | ||||||
| :content_id, | ||||||
| :transfer_encoding, | ||||||
| :attachment_size, | ||||||
| :created_at, | ||||||
| :updated_at, | ||||||
| :attachment_human_size, | ||||||
| :download_path, | ||||||
| keyword_init: true | ||||||
| ) do | ||||||
| # @return [Hash] The Project attributes as a hash | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Incorrect doc: Should say "SandboxAttachment attributes" — same copy-paste issue. 📝 Proposed fix- # `@return` [Hash] The Project attributes as a hash
+ # `@return` [Hash] The SandboxAttachment attributes as a hash📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
| def to_h | ||||||
| super.compact | ||||||
|
i7an marked this conversation as resolved.
Outdated
|
||||||
| end | ||||||
| end | ||||||
| end | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| # frozen_string_literal: true | ||
|
|
||
| require_relative 'base_api' | ||
| require_relative 'sandbox_attachment' | ||
|
|
||
| module Mailtrap | ||
| class SandboxAttachmentsAPI | ||
| include BaseAPI | ||
|
|
||
| self.response_class = SandboxAttachment | ||
|
|
||
| # Retrieves a specific sandbox attachment | ||
| # @param inbox_id [Integer] The inbox ID | ||
| # @param sandbox_message_id [Integer] The sandbox message ID | ||
| # @param sandbox_attachment_id [Integer] The sandbox attachment ID | ||
| # @return [SandboxAttachment] Sandbox attachment object | ||
| # @!macro api_errors | ||
| def get(inbox_id, sandbox_message_id, sandbox_attachment_id) | ||
|
i7an marked this conversation as resolved.
Outdated
|
||
| response = client.get( | ||
| "#{base_path}/inboxes/#{inbox_id}/messages/#{sandbox_message_id}/attachments/#{sandbox_attachment_id}" | ||
| ) | ||
| handle_response(response) | ||
| end | ||
|
|
||
| # Lists all sandbox messages for the account, limited up to 30 at once | ||
| # @param inbox_id [Integer] The inbox ID | ||
| # @param sandbox_message_id [Integer] The sandbox message ID | ||
| # @return [Array<SandboxAttachment>] Array of sandbox message objects | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
| # @!macro api_errors | ||
| def list(inbox_id, sandbox_message_id) | ||
| response = client.get("#{base_path}/inboxes/#{inbox_id}/messages/#{sandbox_message_id}/attachments") | ||
| response.map { |item| handle_response(item) } | ||
| end | ||
|
|
||
| private | ||
|
|
||
| def base_path | ||
| "/api/accounts/#{account_id}" | ||
| end | ||
| end | ||
| end | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.