Class: DbAccessor::Writer

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

Constant Summary collapse

USER_MODEL =
'User'
APP_MODEL =
'Application'

Constants inherited from Db_Accessor::Base

Db_Accessor::Base::ACTION_MODEL, Db_Accessor::Base::ASSIGNMENT_MODEL, Db_Accessor::Base::ENGINE_DATA_MODEL, Db_Accessor::Base::ENGINE_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

.get_content(object_param) ⇒ Object



23
24
25
# File 'lib/dbAccessor/writer/writer.rb', line 23

def self.get_content(object_param)
  object_param[:content]
end

.get_object(object_param) ⇒ Object



27
28
29
# File 'lib/dbAccessor/writer/writer.rb', line 27

def self.get_object(object_param)
  get_model_name(object_param).new(get_content(object_param))
end

.validate(param, waited_keys) ⇒ Object



47
48
49
50
# File 'lib/dbAccessor/writer/writer.rb', line 47

def self.validate(param,waited_keys)
 valid_hash?(param) && valid_keys?(param,waited_keys) && is_model?(param[:model_name]) && valid_object_columns?(param[:model_name],param[:content]) && !validate_argument(param) && !validate_argument(param[:content]) && validate_required_params(param)

end

.validate_required_params(param) ⇒ Object



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

def self.validate_required_params(param)
    content = param[:content]
    model_name = param[:model_name]
    if model_name == 'User'
    email_pattern = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
    content[:login].is_a?(String) && content[:password].is_a?(String) && content[:email].is_a?(String) && !(email_pattern.match(content[:email])).nil? 
    elsif model_name == 'Application'
        content[:name].is_a?(String) && content[:api_key].is_a?(String) && content[:url].is_a?(String)
    elsif model_name == 'Engine'
        content[:name].is_a?(String) && content[:action_based].is_a?(String) && content[:application_id].is_a?(Fixnum)
    else
        false
    end
end

.write_object(object_param) ⇒ Object



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

def self.write_object(object_param)
  waited_keys =[:model_name,:content]
  if validate(object_param,waited_keys)
    @given_object = get_object(object_param)
    @given_object.save
    !@given_object.new_record? ? code = 201 : code = 400
    return_response(code,"Success") 
  else
     return_response(400,"Failed")
  end
end