Class: ShortLinkController

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

Instance Method Summary collapse

Methods inherited from Mints::BaseController

#define_mints_clients

Methods included from ContactAuthHelper

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

Methods included from MintsClients

#define_mints_clients

Instance Method Details

#generateObject


17
18
19
20
21
22
23
24
25
26
# File 'lib/generators/short_link_controller.rb', line 17

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


6
7
8
9
10
11
12
13
14
15
# File 'lib/generators/short_link_controller.rb', line 6

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


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

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