DustHelpers = require './dust-helpers'

class Utils

  constructor: (logger) ->
    @logger = logger

  isAdmin: (req, options = {}) ->
    # Private areas without explicit /admin/ path in URL
    return true if req.isPrivate

    # /admin/logistics/ -> admin/logistics
    cleanUrl = req.url.replace(/\?.*/, '').replace(/^\//, '').replace(/\/$/, '')

    adminIndexRegexp = /^admin(\/[\w-_]*)+$/
    req.cleanUrl = cleanUrl
    isAdmin = adminIndexRegexp.test cleanUrl
    return isAdmin

  startDustHelpers: (dust, req) ->
    helpers = new DustHelpers(req, @logger)
    # dust.helpers['tradePolicyData'] = helpers.portalData
    dust.helpers['topbarData'] = helpers.topbarData
    dust.helpers['featuresData'] = helpers.featuresData
    dust.helpers['version'] = helpers.version
    dust.helpers['aclData'] = helpers.aclData
    dust.helpers['conciergeData'] = helpers.conciergeData

  parseCookies: (req) ->
    cookieList = {}
    cookies = req.headers.cookie

    if cookies
      for cookie in cookies.split(';')
        parts = cookie.split('=')
        cookieName = parts.shift().trim()
        cookieValue = decodeURI(parts.join('='))
        cookieList[cookieName] = cookieValue

    return cookieList

  minifyString: (text) -> text.replace(/(\r\n|\n|\r)/gm," ").replace(/\s+/g," ")

module.exports = Utils
