module Scrivito class ResolvePathsController < WebserviceController def resolve link_parser = LinkParser.new(request.host, request.port) @paths = assert_paths.map do |path| link = link_parser.parse(path) next if link.external? { 'obj_id' => link.obj.id, 'query' => link.query, 'fragment' => link.fragment, } end end private def assert_paths raise ClientError.new('paths is not given or not an Array') unless params[:paths].is_a?(Array) unless params[:paths].all? { |path| path.is_a?(String) } raise ClientError.new('paths is not an Array of Strings') end params[:paths] end end end