30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/trigv/validation.rb', line 30
def validate_send_event_params(params)
params = params.transform_keys(&:to_sym)
unknown = params.keys - ALLOWED_EVENT_KEYS
unless unknown.empty?
field = unknown.first.to_s
raise ValidationError.new("Unknown field \"#{field}\"", { field => ["Unknown field \"#{field}\""] })
end
PROHIBITED_FIELDS.each do |prohibited|
next unless params.key?(prohibited.to_sym)
raise ValidationError.new(
"Field \"#{prohibited}\" is not allowed",
{ prohibited => ["The #{prohibited} field is prohibited"] }
)
end
channel = trim(params[:channel])
title = trim(params[:title])
raise ValidationError.new('channel is required', { channel: ['channel is required'] }) if channel.nil?
raise ValidationError.new('title is required', { title: ['title is required'] }) if title.nil?
assert_max_length('channel', channel, FIELD_MAX_LENGTHS[:channel])
assert_max_length('title', title, FIELD_MAX_LENGTHS[:title])
body = { 'channel' => channel, 'title' => title }
description = trim(params[:description])
if description
assert_max_length('description', description, FIELD_MAX_LENGTHS[:description])
body['description'] = description
end
image_url = trim(params[:image_url])
if image_url
assert_max_length('image_url', image_url, FIELD_MAX_LENGTHS[:image_url])
body['image_url'] = image_url
end
url = trim(params[:url])
if url
assert_max_length('url', url, FIELD_MAX_LENGTHS[:url])
body['url'] = url
end
level = trim(params[:level])
if level
assert_enum('level', level, LEVELS)
body['level'] = level
end
delivery_urgency = trim(params[:delivery_urgency])
if delivery_urgency
assert_enum('delivery_urgency', delivery_urgency, DELIVERY_URGENCIES)
body['delivery_urgency'] = delivery_urgency
end
event_type = trim(params[:event_type])
if event_type
assert_max_length('event_type', event_type, FIELD_MAX_LENGTHS[:event_type])
body['event_type'] = event_type
end
idempotency_key = trim(params[:idempotency_key])
if idempotency_key
assert_max_length('idempotency_key', idempotency_key, FIELD_MAX_LENGTHS[:idempotency_key])
body['idempotency_key'] = idempotency_key
end
body
end
|