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