Skip to content

Instantly share code, notes, and snippets.

@bondarolik
Created June 27, 2016 17:34
Show Gist options
  • Save bondarolik/66ec16b115aa8024a7d98fc7c7d65c5e to your computer and use it in GitHub Desktop.
Save bondarolik/66ec16b115aa8024a7d98fc7c7d65c5e to your computer and use it in GitHub Desktop.
class DiscogsController < ApplicationController
before_filter :authenticate_user!
before_filter :check_admin
before_filter do
@discogs = Discogs::Wrapper.new("APP_NAME", access_token: session[:access_token])
end
def index
@items_with_discogs = Item.all # Items should have discogs_release_id
if params[:preprocess]
@items_with_discogs.each do |item|
d = @discogs.get_release(item.discogs_id).images[0].resource_url
# Use with Paperclip
item.discogs_thumb = URI.parse(d)
item.avatar = URI.parse(d)
#logger.debug "DISCOGS RESULT: #{d.images} \n\n"
item.save
end
end
end
def authenticate
app_key = Settings.discogs.api_key
app_secret = Settings.discogs.api_secret
request_data = @discogs.get_request_token(app_key, app_secret, callback_discogs_url)
session[:request_token] = request_data[:request_token]
redirect_to request_data[:authorize_url]
end
def callback
request_token = session[:request_token]
verifier = params[:oauth_verifier]
access_token = @discogs.authenticate(request_token, verifier)
session[:request_token] = nil
session[:access_token] = access_token
redirect_to :action => "index"
end
private
def discogs_params
params.require(:discogs).permit(:avatar)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment