Module: Api::Scheme::Action

Defined in:
lib/api/scheme/action.rb

Constant Summary collapse

SCHEME =
{
   fetch_model_instances: {
      before: :index
   },
   fetch_model_instance: {
      before: %i(show update destroy)
   },
   init_model_instance: {
      before: :create
   }
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.define_for(klass, name) ⇒ Object



55
56
57
58
# File 'lib/api/scheme/action.rb', line 55

def define_for klass, name
   method = self.instance_method(name)
   klass.send(:define_method, name, method)
end

Instance Method Details

#createObject



24
25
26
27
28
# File 'lib/api/scheme/action.rb', line 24

def create
   model_instance.save!

   render_default_success({ model_key => model_instance }, status: :created)
end

#destroyObject



36
37
38
39
40
# File 'lib/api/scheme/action.rb', line 36

def destroy
   model_instance.destroy!

   render_default_success({ model_key => model_instance }, status: :ok)
end

#fetch_model_instanceObject



46
47
48
# File 'lib/api/scheme/action.rb', line 46

def fetch_model_instance
   self.model_instance = model.find(params[:id])
end

#fetch_model_instancesObject



42
43
44
# File 'lib/api/scheme/action.rb', line 42

def fetch_model_instances
   self.model_instances = model.all
end

#indexObject



16
17
18
# File 'lib/api/scheme/action.rb', line 16

def index
   render_default_success models_key => model_instances
end

#init_model_instanceObject



50
51
52
# File 'lib/api/scheme/action.rb', line 50

def init_model_instance
   self.model_instance = model.new(permitted_params)
end

#showObject



20
21
22
# File 'lib/api/scheme/action.rb', line 20

def show
   render_default_success model_key => model_instance
end

#updateObject



30
31
32
33
34
# File 'lib/api/scheme/action.rb', line 30

def update
   model_instance.update!(permitted_params)

   render_default_success({ model_key => model_instance }, status: :ok)
end