Skip to content

Instantly share code, notes, and snippets.

@yozlet
Created April 27, 2015 17:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yozlet/a9560c1d1d617845686e to your computer and use it in GitHub Desktop.
Save yozlet/a9560c1d1d617845686e to your computer and use it in GitHub Desktop.
JSON admin refactor
require 'csv'
class AdminController < ApplicationController
layout 'dashboard'
before_filter :require_admin!
def index
@applications = Doorkeeper::Application.includes(:authorizations)
respond_to do |format|
format.html do
@applications = @applications.
filter(params[:filter]).
search(params[:search]).
paginate(page: params[:page], per_page: 8)
end
format.json do
json_string = {applications: @applications.all}.as_json(methods: :number_of_authorizations)
render(json: json_string, status: 200)
end
format.csv do
render(text: generate_csv(@applications), status: 200)
end
end
end
private
def generate_csv(applications)
CSV.generate do |csv|
csv << Doorkeeper::Application.attribute_names
applications.all.each do |application|
csv << application.attributes.values
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment