61 lines
1.5 KiB
Ruby
61 lines
1.5 KiB
Ruby
module IdCard
|
|
class EmployerLogosController < ApplicationController
|
|
|
|
# View Methods
|
|
def index
|
|
end
|
|
|
|
def show
|
|
end
|
|
|
|
def new
|
|
end
|
|
|
|
def create
|
|
file = logo_params["logo_file"]
|
|
employer_id = logo_params["employer_id"]
|
|
employer = Employer.find(employer_id)
|
|
setup = employer.id_card_setup
|
|
if setup.present? && file.present? && file.is_a?(ActionDispatch::Http::UploadedFile)
|
|
filename = file.original_filename
|
|
# binary_data = file.read
|
|
binary_data = File.binread(file)
|
|
meme_type = Marcel::MimeType.for(file)
|
|
|
|
employer_logo = IdCard::EmployerLogo.find_or_create_by(filename: filename, setup_id: setup.id)
|
|
employer_logo.update(image_data: binary_data)
|
|
|
|
render json: employer_logo, only: [:id], status: :ok
|
|
end
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
end
|
|
|
|
def destroy
|
|
end
|
|
|
|
# API Methods
|
|
|
|
def image
|
|
logo_file = IdCard::EmployerLogo.find(params[:id])
|
|
puts params[:id]
|
|
logo_binary = logo_file.image_data
|
|
logo_filename = logo_file.filename
|
|
|
|
send_data logo_binary,
|
|
filename: logo_filename,
|
|
disposition: 'inline'
|
|
end
|
|
|
|
private
|
|
|
|
def logo_params
|
|
params.require(:id_card_employer_logo).permit(:logo_file, :employer_id)
|
|
end
|
|
|
|
end
|
|
end |