mirror of https://github.com/docusealco/docuseal
parent
4cb85d2960
commit
c9af371bc0
@ -0,0 +1,35 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
require 'faraday'
|
||||||
|
|
||||||
|
class ExportController < ApplicationController
|
||||||
|
skip_before_action :maybe_redirect_to_setup
|
||||||
|
skip_before_action :verify_authenticity_token
|
||||||
|
|
||||||
|
# Template is sent as JSON already; we're just gonnna send it on to the third party
|
||||||
|
def export_template
|
||||||
|
conn = Faraday.new(url: 'https://api.thirdparty.com') do |faraday|
|
||||||
|
faraday.request :json
|
||||||
|
faraday.response :json
|
||||||
|
faraday.adapter Faraday.default_adapter
|
||||||
|
end
|
||||||
|
|
||||||
|
response = conn.post('/endpoint') do |req|
|
||||||
|
req.headers['Authorization'] = 'Bearer YOUR_API_KEY'
|
||||||
|
# Pass along the entire JSON payload received in the request
|
||||||
|
req.body = request.raw_post.present? ? JSON.parse(request.raw_post) : params.to_unsafe_h
|
||||||
|
end
|
||||||
|
|
||||||
|
if response.success?
|
||||||
|
redirect_to templates_path, alert: I18n.t('exports.templates.success')
|
||||||
|
else
|
||||||
|
Rollbar.error("Third party API error: #{response.status} - #{response.body}") if defined?(Rollbar)
|
||||||
|
redirect_to templates_path, alert: I18n.t('exports.templates.api_error')
|
||||||
|
end
|
||||||
|
rescue Faraday::Error => e
|
||||||
|
Rollbar.error("Failed to send to third party: #{e.message}") if defined?(Rollbar)
|
||||||
|
redirect_to templates_path, alert: I18n.t('exports.templates.api_error')
|
||||||
|
rescue StandardError => e
|
||||||
|
Rollbar.error(e) if defined?(Rollbar)
|
||||||
|
redirect_to templates_path, alert: I18n.t('exports.templates.error')
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in new issue