Skip to content

Commit 8dc916f

Browse files
committed
regenerated vcr cassets without sensitive data, cleanup lib/mailtrap/template.rb
1 parent 1efc987 commit 8dc916f

21 files changed

+734
-423
lines changed

lib/mailtrap/template.rb

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,10 @@ module Mailtrap
88
# @attr_reader body_text [String] The plain text content (<= 10000000 chars)
99
# @attr_reader body_html [String] The HTML content (<= 10000000 chars)
1010
EmailTemplateRequest = Struct.new(:name, :category, :subject, :body_text, :body_html, keyword_init: true) do
11-
def initialize(*)
12-
super
13-
validate_required_fields
14-
validate_field_lengths
15-
end
16-
1711
# @return [Hash] The template request attributes as a hash
1812
def to_h
1913
super.compact
2014
end
21-
22-
private
23-
24-
def validate_required_fields
25-
required_fields = %i[name category subject]
26-
missing_fields = required_fields.select { |field| self[field].nil? || self[field].empty? }
27-
28-
return if missing_fields.empty?
29-
30-
raise ArgumentError, "Missing required fields: #{missing_fields.join(", ")}"
31-
end
32-
33-
def validate_field_lengths
34-
validate_field_length(:name, name, Template::MAX_LENGTH)
35-
validate_field_length(:category, category, Template::MAX_LENGTH)
36-
validate_field_length(:subject, subject, Template::MAX_LENGTH)
37-
validate_field_length(:body_text, body_text, Template::MAX_BODY_LENGTH)
38-
validate_field_length(:body_html, body_html, Template::MAX_BODY_LENGTH)
39-
end
40-
41-
def validate_field_length(field, value, max_length)
42-
return if value.nil? || value.length <= max_length
43-
44-
raise ArgumentError, "#{field} exceeds maximum length of #{max_length} characters"
45-
end
4615
end
4716

4817
# Data Transfer Object for Email Template
@@ -104,9 +73,10 @@ def get(template_id)
10473
# @return [EmailTemplate] Created template object
10574
# @raise [ArgumentError] If the request is invalid
10675
def create(request)
76+
normalised = request.is_a?(EmailTemplateRequest) ? request : EmailTemplateRequest.new(**request)
10777
response = @client.post(base_path,
10878
{
109-
email_template: request.to_h
79+
email_template: normalised.to_h
11080
})
11181
EmailTemplate.new(response)
11282
end
@@ -117,9 +87,10 @@ def create(request)
11787
# @return [EmailTemplate] Updated template object
11888
# @raise [ArgumentError] If the request is invalid
11989
def update(template_id, request)
90+
normalised = request.is_a?(EmailTemplateRequest) ? request : EmailTemplateRequest.new(**request)
12091
response = @client.patch("#{base_path}/#{template_id}",
12192
{
122-
email_template: request.to_h
93+
email_template: normalised.to_h
12394
})
12495
EmailTemplate.new(response)
12596
end

spec/fixtures/vcr_cassettes/Mailtrap_Template/_create/maps_response_data_to_EmailTemplate_object.yml

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/Mailtrap_Template/_create/returns_an_EmailTemplate_object.yml

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/Mailtrap_Template/_create/when_API_returns_an_error/raises_a_Mailtrap_Error.yml

Lines changed: 163 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)