Sha256: a53d9ed3bf51480a17c35ecedd1a6dddccbbce4750b8b224ed252ff343842e2e

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

angular.module('EssayApp.services')
       .factory 'UserLocationService', ['checkAuthService', '$http', '$q', (checkAuthService, $http, $q) ->

  api =
    auth: checkAuthService
    checked_in_eu: undefined
    COOKIE_KEY: 'user_located_in_eu'
    __fetchRq: false

  api._testEx = new RegExp("#{api.COOKIE_KEY}=")
  api._trueEx = new RegExp("#{api.COOKIE_KEY}=true")

  fetchWhoami = ->
    $http.get('/user-lookup.json', cache: true).then (data) =>
      if data?.data?.in_eu?
        api.checked_in_eu = "#{data?.data?.in_eu}" is 'true'
        document.cookie = "#{api.COOKIE_KEY}=#{api.checked_in_eu};path=/"
        return api.checked_in_eu
      return api.in_eu

  api.in_eu = ->
    return api.checked_in_eu if api.checked_in_eu?
    api._trueEx.test document.cookie

  api.check_in_eu = ->
    $q (resolve, reject) ->
      return resolve(api.checked_in_eu) if api.checked_in_eu?
      if api._testEx.test(document.cookie)
        resolve(api._trueEx.test(document.cookie))
        return

      fetchWhoami().then (in_eu) =>
        resolve(in_eu)

  checkAuthService.user
    success: (user) ->
      unless user?
        fetchWhoami()
        return

      api.checked_in_eu = user.in_eu
    fail: ->
      fetchWhoami()
    # error: (fail) ->

  api
]

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/assets/javascripts/app/services/user_location_service.js.coffee