moment = require 'moment'
_ = require 'lodash'
utils = require 'utility'

class Tools
  getUnixTime: (utc=null) ->
    if utc?
      _.round moment().subtract(utc, 'hour').format('x') / 1000
    else
      _.round moment().format('x') / 1000

  md5: (s) ->
    utils.md5 s

  bubblesort: (obj, isEncode=true) ->
    _obj = {}
    _.forIn obj, (v, k) ->
      _obj[k.toLowerCase()] = v

    arr = _.keys(_obj).sort().map (k) ->
      v = _obj[k]
      if isEncode
        v = encodeURIComponent(v).toLowerCase()
      "#{k}=#{if _.isString(v) then v.toLowerCase() else v}"
    arr.join '&'

  get_and_del_key: (obj, key) ->
    if _.has obj, key
      v = obj[key]
      delete obj[key]
      v
    else
      false

module.exports = Tools