Sha256: 6c777947d6903b14d31a3410b2dcaaadec2662d8c2cf1fd2eaf83954d94246ed

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

require 'sinatra/base'
require 'fileutils'

class DocverterServer::App < Sinatra::Base

  set :show_exceptions, false
  set :dump_errors, false
  set :raise_errors, true
  
  post '/convert' do

    dir = Dir.mktmpdir

    Dir.chdir(dir) do
      manifest = DocverterServer::Manifest.new

      input_files = params.delete('input_files') || []
      other_files = params.delete('other_files') || []

      input_files.each do |upload|
        FileUtils.cp upload[:tempfile].path, upload[:filename]
        manifest['input_files'] << upload[:filename]
      end

      other_files.each do |upload|
        FileUtils.cp upload[:tempfile].path, upload[:filename]
      end

      params.each do |key,val|
        next if key == 'controller' || key == 'action'
        key = key.gsub("'", '') if key.is_a?(String)
        val = val.gsub("'", '') if val.is_a?(String)

        manifest[key] = val
      end

      manifest.write('manifest.yml')

      output_file = DocverterServer::Conversion.new(dir).run

      content_type(DocverterServer::ConversionTypes.mime_type(manifest['to']))

      @output = nil
      File.open(output_file) do |f|
        @output = f.read
      end
      @output
    end

  end

  get '/' do
    'hi'
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
docverter-server-1.0.3-java lib/docverter-server/app.rb
docverter-server-1.0.2-java lib/docverter-server/app.rb