Top Level Namespace

Defined Under Namespace

Modules: MongoClient, SchemalessRestApi, ServerUtils Classes: Entities, RestServer, SwaggerBuilder

Constant Summary collapse

SEED_FILE =
"db.json"

Instance Method Summary collapse

Instance Method Details

#extract_modelsObject



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/schemaless_rest_api.rb', line 46

def extract_models
  return [] if !Entities.models.empty? && models_env_not_set

  error_msg = "Make 'models' environment variable an array (e.g ['model1', 'model2'])"
  raise "Please set 'models' ENV variable or create 'db.json'. #{error_msg}" if ENV["models"].nil?

  models = eval(T.must(ENV["models"])) # rubocop:disable Security/Eval
  raise error_msg unless models.is_a? Array

  models
end

#init_based_on_seedObject

typed: true



5
6
7
8
9
10
11
12
13
14
# File 'lib/schemaless_rest_api/seed.rb', line 5

def init_based_on_seed
  return if ENV["mongodb"]

  puts "Seeding db based on '#{SEED_FILE}'"
  seed_data = JSON.parse(File.read(SEED_FILE))
  seed_data.each do |entity, values|
    Entities.models[entity.to_sym] = {} unless Entities.models[entity.to_sym]
    seed_in_memory_data(entity, values)
  end
end

#models_env_not_setObject



42
43
44
# File 'lib/schemaless_rest_api.rb', line 42

def models_env_not_set
  !ENV["models"] || T.must(ENV["models"]).empty?
end

#seed_in_memory_data(entity, values) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/schemaless_rest_api/seed.rb', line 16

def seed_in_memory_data(entity, values)
  unless values.is_a? Array
    SchemalessRestApi.logger.warning "Entity '#{entity}' doesn't have array, skipping"
    return
  end

  values.each do |value|
    next unless value["id"]

    Entities.models[entity.to_sym][value["id"].to_s] = value
  end
end