Sha256: a23d5d5e6349880c9941ec85a76af12911105189f81604e99c41c5989b64a2a1

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

module Riiif
  class ImagesController < ::ApplicationController
    before_filter :link_header, only: [:show, :info]
    def show
      begin
        image = Image.new(params[:id])
        status = :ok
      rescue ImageNotFoundError
        if Riiif.not_found_image.present?
          image = Riiif::Image.new(params[:id], Riiif::File.new(Riiif.not_found_image))
          status = :not_found
        else
          raise
        end
      end
      data = image.render(params.permit(:region, :size, :rotation, :quality, :format))
      send_data data, status: status, type: Mime::Type.lookup_by_extension(params[:format]), :disposition => 'inline'
    end

    def info
      image = Image.new(params[:id])
      render json: image.info.merge(server_info)
    end

    def view
      @image = Image.new(params[:id])
    end

    protected

    LEVEL2 = 'http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2'

    def link_header
      response.headers["Link"] = "<#{LEVEL2}>;rel=\"profile\""
    end

    def server_info
      {
        "@context" => "http://library.stanford.edu/iiif/image-api/1.1/context.json",
        "@id" => request.original_url.sub('/info.json', ''), 
        "formats" => Image::OUTPUT_FORMATS,
        "profile" => "#{LEVEL2}"
        
      }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
riiif-0.0.10 app/controllers/riiif/images_controller.rb
riiif-0.0.9 app/controllers/riiif/images_controller.rb
riiif-0.0.8 app/controllers/riiif/images_controller.rb
riiif-0.0.7 app/controllers/riiif/images_controller.rb