Class: DbAccessor::Deleter

Inherits:
Db_Accessor::Base show all
Defined in:
lib/dbAccessor.rb,
lib/dbAccessor/deleter/deleter.rb

Constant Summary

Constants inherited from Db_Accessor::Base

Db_Accessor::Base::APP_MODEL, Db_Accessor::Base::ENGINE_DATA_MODEL, Db_Accessor::Base::ENGINE_MODEL, Db_Accessor::Base::USER_MODEL

Class Method Summary collapse

Methods inherited from Db_Accessor::Base

get_model_name, is_model?, return_response, valid_attributes_values?, valid_class?, valid_hash?, valid_keys?, valid_object_columns?, validate_argument, verify_keys

Class Method Details

.delete(param) ⇒ Object



20
21
22
23
24
# File 'lib/dbAccessor/deleter/deleter.rb', line 20

def self.delete(param)
  parameter = JSON.parse(param,symbolize_names: true)
  model     = get_model_name(parameter)
  model.delete_all
end

.delete_all(given_object) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/dbAccessor/deleter/deleter.rb', line 8

def self.delete_all(given_object)
  waited_keys = [:model_name,:condition]
  if validate(given_object,waited_keys) && valid_condition?(given_object)
 model = get_model_name(given_object)
    condition = given_object[:condition]
    condition == {} ? model.update_all("deleted = true") : model.where(condition).update_all("deleted = true")
 return_response(200,"success")
  else
    return_response(400,"Not deleted")
  end
end

.valid_condition?(param) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/dbAccessor/deleter/deleter.rb', line 30

def self.valid_condition?(param)
  condition = param[:condition]
  model_name = param[:model_name]
  if condition.is_a?(Hash)
    if !(condition.empty?)
      keys = condition.keys
      values = condition.values
      if !(valid_object_columns?(model_name,condition)) || validate_argument(condition) || !(valid_attributes_values?(condition))
        return false
      end
    else
        return true
    end
  else
      return false
  end
  return true
end

.validate(param, waited_keys) ⇒ Object



26
27
28
# File 'lib/dbAccessor/deleter/deleter.rb', line 26

def self.validate(param,waited_keys)
    param.is_a?(Hash) && valid_keys?(param,waited_keys) && !validate_argument(param) && is_model?(param[:model_name])
end