Sha256: b4686874bb6d45b2e7e3c3c52691412be8d578bc889cde3839f5930eccf0f37e

Contents?: true

Size: 1.17 KB

Versions: 6

Compression:

Stored size: 1.17 KB

Contents

module LadyJosephine
  class EditorController < ::ApplicationController

    def ping
      if @resource = find_resource
        result = {ping: {}}

        if @resource.ping(current_user, params[:update] == "force")
          @resource.save
          result[:ping][:state] = "OK"
        else
          result[:ping][:state] = "CONFLICT"
        end

        result[:ping][:ping_date] = @resource.lady_josephine_ping_date
        result[:ping][:user_id]   = @resource.lady_josephine_ping_user.try :id
        result[:ping][:user_name] = @resource.lady_josephine_ping_user.try :name

        render json: result
      end
    end

    def version
      if @resource = find_resource
        render json: @resource
      end
    end

    private

    def find_resource
      resource_class = whitelisted_class(params[:resource])
      if (resource_class && @resource = resource_class.where(lady_josephine_server_uuid: params[:id]).first)
        @resource
      else
        render nothing: true, status: 404
        nil
      end
    end

    def whitelisted_class(resource)
      resource.capitalize.constantize if LadyJosephine::Whitelist.instance.is_whitelisted?(resource)
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
lady_josephine-0.7.0 app/controllers/lady_josephine/editor_controller.rb
lady_josephine-0.6.3 app/controllers/lady_josephine/editor_controller.rb
lady_josephine-0.6.2 app/controllers/lady_josephine/editor_controller.rb
lady_josephine-0.6.1 app/controllers/lady_josephine/editor_controller.rb
lady_josephine-0.6.0 app/controllers/lady_josephine/editor_controller.rb
lady_josephine-0.5.0 app/controllers/lady_josephine/editor_controller.rb