Sha256: 74f18074cbc361c59bb35faa7bc73cf97419269d6a4a9ea4b9cff421ddb544a9

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require 'mongo'

module MongoClient
  class << self
    # @return Client to work with MongoDb
    attr_accessor :client

    def insert(model, data, id)
      collection = MongoClient.client[model]
      collection.insert_one({ id: id, **data})
    end

    def find(model, id)
      find_all(model, { id: id } )
    end

    def get_all(model)
      collection = MongoClient.client[model]
      collection.find.collect do |match|
        match.delete("_id")
        match
      end
    end

    def find_all(model, query)
      collection = MongoClient.client[model]
      collection.find( query ).collect do |match|
        match.delete("_id")
        match
      end
    end

    def update(model, id, data)
      collection = MongoClient.client[model]
      collection.update_one({ id: id }, { id: id, **data})
    end

    def delete(model, id)
      collection = MongoClient.client[model]
      collection.delete_one({ id: id })
    end
  end
end

if ENV['mongo_root_password']
MongoClient.client = Mongo::Client.new(
    [ "#{ENV['mongodb']}:27017" ],
    database: 'api', password: ENV['mongo_root_password'],
    user: 'root')
else
  MongoClient.client = Mongo::Client.new(
      [ "#{ENV['mongodb']}:27017" ],
      database: 'api')
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
schemaless_rest_api-0.3.1 lib/schemaless_rest_api/mongo_client.rb
schemaless_rest_api-0.3.0 lib/schemaless_rest_api/mongo_client.rb