Class: Mihari::Emitters::HTTP
- Inherits:
-
Base
- Object
- Base
- Mihari::Emitters::HTTP
show all
- Defined in:
- lib/mihari/emitters/http.rb
Constant Summary
Mixins::Retriable::DEFAULT_ON
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Base
inherited, #run
#retry_on_error
#configuration_keys, #configuration_values, #configured?
Constructor Details
#initialize(*args, **kwargs) ⇒ HTTP
Returns a new instance of HTTP.
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/mihari/emitters/http.rb', line 59
def initialize(*args, **kwargs)
super(*args, **kwargs)
uri = kwargs[:url] || kwargs[:uri]
= kwargs[:http_request_headers] || {}
http_request_method = kwargs[:http_request_method] || "POST"
template = kwargs[:template]
@uri = Addressable::URI.parse(uri) if uri
=
@http_request_method = http_request_method
@template = template
end
|
Instance Attribute Details
51
52
53
|
# File 'lib/mihari/emitters/http.rb', line 51
def
end
|
#http_request_method ⇒ String
54
55
56
|
# File 'lib/mihari/emitters/http.rb', line 54
def http_request_method
@http_request_method
end
|
#template ⇒ String?
57
58
59
|
# File 'lib/mihari/emitters/http.rb', line 57
def template
@template
end
|
#uri ⇒ Addressable::URI?
48
49
50
|
# File 'lib/mihari/emitters/http.rb', line 48
def uri
@uri
end
|
Instance Method Details
#emit(title:, description:, artifacts:, source:, tags:) ⇒ Object
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
|
# File 'lib/mihari/emitters/http.rb', line 73
def emit(title:, description:, artifacts:, source:, tags:)
return if artifacts.empty?
res = nil
payload_ = payload_as_string(
title: title,
description: description,
artifacts: artifacts,
source: source,
tags: tags
)
payload = JSON.parse(payload_)
client = Mihari::HTTP.new(uri, headers: , payload: payload)
case http_request_method
when "GET"
res = client.get
when "POST"
res = client.post
end
res
end
|
#valid? ⇒ Boolean
99
100
101
102
103
|
# File 'lib/mihari/emitters/http.rb', line 99
def valid?
return false if uri.nil?
["http", "https"].include? uri.scheme.downcase
end
|