26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/ultrasafeai/moderations/client.rb', line 26
def create_moderation(request_options: {}, **params)
params = Ultrasafeai::Internal::Types::Utils.normalize_keys(params)
request = Ultrasafeai::Internal::JSON::Request.new(
base_url: request_options[:base_url] || @base_url || @environment&.dig(:base),
method: "POST",
path: "moderations",
body: Ultrasafeai::Moderations::Types::CreateModerationRequest.new(params).to_h,
request_options: request_options
)
begin
response = @client.send(request)
rescue Net::HTTPRequestTimeout
raise Ultrasafeai::Errors::TimeoutError
end
code = response.code.to_i
if code.between?(200, 299)
Ultrasafeai::Types::ModerationResponse.load(response.body)
else
error_class = Ultrasafeai::Errors::ResponseError.subclass_for_code(code)
raise error_class.new(response.body, code: code)
end
end
|