Method: GoogleBookSearch#handle

Defined in:
app/service_adaptors/google_book_search.rb

#handle(request) ⇒ Object



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'app/service_adaptors/google_book_search.rb', line 109

def handle(request)

  bibkeys = get_bibkeys(request.referent)
  return request.dispatched(self, true) if bibkeys.nil?

  data = do_query(bibkeys, request)
  
  
  if data.blank? || data["error"]
    # fail fatal
    return request.dispatched(self, false)
  end
  
  # 0 hits, return. 
  return request.dispatched(self, true) if data["totalItems"] == 0
  
  enhance_referent(request, data) if @referent_enhance

  add_abstract(request, data) if @abstract
  
  #return full views first
  if @fulltext
    full_views_shown = create_fulltext_service_response(request, data)
  end
  
  if @search_inside
    # Add search_inside link if appropriate
    add_search_inside(request, data)
  end
  
  # only if no full view is shown, add links for partial view or noview
  unless full_views_shown
    do_web_links(request, data)
  end
  
  if @cover_image
    thumbnail_url = find_thumbnail_url(data)
    if thumbnail_url
      add_cover_image(request, thumbnail_url)    
    end
  end

  return request.dispatched(self, true)
end