module IdCard
    class NetworkLogosController < ApplicationController

        # View Methods
        def index 
        end

        def show
        end

        def new
        end

        def create
            file = logo_params["logo_file"]
            if 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)

                networklogo = IdCard::NetworkLogo.create(
                    filename: filename,
                    image_data: binary_data,
                    content_type: meme_type
                )

                render json: networklogo, only: [:id], status: :ok
            end
        end

        def edit
        end

        def update
        end

        def destroy
        end

        # API Methods

        def image
            logo_file = IdCard::NetworkLogo.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_network_logo).permit(:logo_file)
        end

    end
end