_ = require 'underscore'
users = require '../fixtures/users'

module.exports = (app) ->

  token = 'faketoken'

  host = "http://localhost:#{app.settings.port}"

  uri = (path) -> "#{host}#{path}"

  requests =

    index: uri('/')

    account: uri('/account')

    users: uri('/users')

    signupForm: uri('/signup')

    signup: (user) ->
      if typeof user is 'string'
        form =
          _csrf: token
          email: users.documents[user].email
          password: users.documents[user].password
          'name.first': users.documents[user].name.first
          'name.last': users.documents[user].name.last
      else
        form = _.clone users.documents.empty
        form[key] = val for key, val of user
        form._csrf = token
      return {
        method: 'POST'
        uri: uri('/signup')
        form: form
        followAllRedirects: true
      }

    loginForm: uri('/login')

    login: (user, password) ->
      if users.documents[user]
        form =
          _csrf: token
          email: users.documents[user].email
          password: users.documents[user].password
      else
        form = { _csrf: token, email: user or '', password: password or ''}
      return {
        method: 'POST'
        uri: "#{host}/login"
        form: form
        followAllRedirects: true
      }

    logout: uri('/logout')



  return requests
