Class: MintsLink
- Inherits:
-
Object
- Object
- MintsLink
- Defined in:
- lib/generators/mints_link.rb
Instance Method Summary collapse
- #generate(url) ⇒ Object
- #get_url(code) ⇒ Object
- #get_visits(filter, page = 1, page_size = 1000) ⇒ Object
-
#initialize ⇒ MintsLink
constructor
A new instance of MintsLink.
- #visit(code, url, contact_id, user_agent, ip) ⇒ Object
Constructor Details
#initialize ⇒ MintsLink
Returns a new instance of MintsLink.
4 5 6 7 8 9 10 11 12 |
# File 'lib/generators/mints_link.rb', line 4 def initialize @host = ENV['MONGO_HOST'] || '127.0.0.1' @database = ENV['MONGO_DATABASE'] || 'mints' @port = ENV['MONGO_PORT'] || '27017' @client = Mongo::Client.new(["#{@host}:#{@port}"], :database => @database) @short_links = @client[:short_links] @sl_visits = @client[:sl_visits] generate_indexes end |
Instance Method Details
#generate(url) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/generators/mints_link.rb', line 14 def generate(url) code = random_string.upcase collection = @short_links doc = { url: url, code: code } result = collection.insert_one(doc) if result.n === 1 code else false end end |
#get_url(code) ⇒ Object
30 31 32 33 34 |
# File 'lib/generators/mints_link.rb', line 30 def get_url(code) collection = @short_links record = collection.find({ 'code' => code }).first record["url"] end |
#get_visits(filter, page = 1, page_size = 1000) ⇒ Object
49 50 51 52 |
# File 'lib/generators/mints_link.rb', line 49 def get_visits(filter, page = 1, page_size = 1000) collection = @sl_visits collection.find(filter).sort({ _id: 1 }).skip(page * page_size - page_size).limit(page_size) end |
#visit(code, url, contact_id, user_agent, ip) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/generators/mints_link.rb', line 36 def visit(code, url, contact_id, user_agent, ip) collection = @sl_visits doc = { code: code, url: url, contact_id: contact_id, user_agent: user_agent, ip: ip } result = collection.insert_one(doc) result.n === 1 end |