Sha256: b83c17aeaef5d801da9ed90260c56df131187817fff79084579b9ce9faf04572

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 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

MongoClient.client = Mongo::Client.new(
    [ "#{ENV['mongodb']}:27017" ],
    :database => 'api')

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
schemaless_rest_api-0.2.2 lib/schemaless_rest_api/mongo_client.rb
schemaless_rest_api-0.2.1 lib/schemaless_rest_api/mongo_client.rb