Sha256: 507786e74d5f317458f920459ee6da08dce351ba8dc74faacfdfb7b79fee27a1

Contents?: true

Size: 1.73 KB

Versions: 12

Compression:

Stored size: 1.73 KB

Contents

module Notifiable
  
  class DeviceTokensController < Notifiable.api_controller_class
    
    rescue_from ActiveRecord::RecordNotFound do |error|
      render :json => {:error => error.message}, :status => :not_found
    end
    
    before_filter :find_device_token, :ensure_authorized!, :except => :create
    
    def create
      @device_token = DeviceToken.find_or_initialize_by(:token => params[:token])
      @device_token.is_valid = true
      perform_update(device_token_params)
    end
    
    def update
      perform_update(device_token_params)
    end

    def destroy    
      if @device_token.destroy
        head :status => :ok
      else
        render :json => { :errors => @device_token.errors.full_messages }, :status => :unprocessable_entity
      end
    end
    
    private
      def perform_update(params)
        if @device_token.update_attributes(params)
          render :json => @device_token.to_json(:only => Notifiable.api_device_token_params.push(:id)), :status => :ok
        else
          render :json => { :errors => @device_token.errors.full_messages }, :status => :unprocessable_entity
        end
      end
    
      def device_token_params
        device_token_params = params.permit(Notifiable.api_device_token_params)
        
        if current_notifiable_user
          device_token_params[:user_id] = current_notifiable_user.id 
        else
          device_token_params[:user_id] = nil   
        end
        
        device_token_params
      end
    
      def ensure_authorized!
        head :status => :unauthorized unless !@device_token.user || @device_token.user.eql?(current_notifiable_user)
      end
    
      def find_device_token
        @device_token = DeviceToken.find(params[:id])
      end
  end
  
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
notifiable-rails-0.24.3 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.24.2 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.24.1 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.24.0 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.23.0 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.22.1 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.22.0 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.21.3 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.21.2 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.21.1 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.21.0 app/controllers/notifiable/device_tokens_controller.rb
notifiable-rails-0.20.0 app/controllers/notifiable/device_tokens_controller.rb