Class: ShortLinkController

Inherits:
Mints::BaseController show all
Defined in:
lib/generators/short_link_controller.rb

Instance Method Summary collapse

Methods inherited from Mints::BaseController

#mints_contact_login, #mints_contact_logout, #mints_contact_magic_link_login, #mints_contact_signed_in?

Instance Method Details

#generateObject


14
15
16
17
18
19
20
21
22
23
# File 'lib/generators/short_link_controller.rb', line 14

def generate
  url = params[:url]
  if url =~ /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/
    mints_link = MintsLink.new
    code = mints_link.generate(url)
    render json: { code: code }
  else
    render json: false
  end
end

#redirectObject


3
4
5
6
7
8
9
10
11
12
# File 'lib/generators/short_link_controller.rb', line 3

def redirect
  code = params[:code]
  mints_link = MintsLink.new
  url = mints_link.get_url(code)
  contact_id = cookies[:mints_contact_id]
  user_agent = request.user_agent
  ip = request.remote_ip
  mints_link.visit(code, url, contact_id, user_agent, ip)
  redirect_to url
end

#visitsObject


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/generators/short_link_controller.rb', line 25

def visits
  code = params[:code]
  contact_id = params[:contact_id]
  page = params[:page] ? params[:page].to_i : 1
  page_size = params[:page_size] ? params[:page_size].to_i : 1000
  filter = {}
  if code
    filter['code'] = code
  end
  if contact_id
    filter['contact_id'] = contact_id
  end
  mints_link = MintsLink.new
  visits = mints_link.get_visits(filter, page, page_size)
  render json: { data: {visits: visits }}
end