 
 	# Default GET handler
 	# Called with same params as @onRequest
+	# @note Only called if return value from onRequest is falsy
+	# @see onRequest
 	onGet: (req, reply) ->
 		@logger.warn "#{@constructor.name}.onGet not implemented (path: #{req.raw.path})"
 
 	# Default POST handler
 	# Called with same params as @onRequest
+	# @note Only called if return value from onRequest is falsy
+	# @see onRequest
 	onPost: (req, reply) ->
 		@logger.warn "#{@constructor.name}.onPost not implemented (path: #{req.raw.path})"
 
 	# Default DELETE handler
 	# Called with same params as @onRequest
+	# @note Only called if return value from onRequest is falsy
+	# @see onRequest
 	onDelete: (req, reply) ->
 		@logger.warn "#{@constructor.name}.onDelete not implemented (path: #{req.raw.path})"
 
 	# Default PUT handler
 	# Called with same params as @onRequest
+	# @note Only called if return value from onRequest is falsy
+	# @see onRequest
 	onPut: (req, reply) ->
 		@logger.warn "#{@constructor.name}.onPut not implemented (path: #{req.raw.path})"
 
 	# Default PATCH handler
 	# Called with same params as @onRequest
+	# @note Only called if return value from onRequest is falsy
+	# @see onRequest
 	onPatch: (req, reply) ->
 		@logger.warn "#{@constructor.name}.onPatch not implemented (path: #{req.raw.path})"
 

			method: route.method
			path: route.path

			config: 
				handler: route.handler

				auth: auth

				plugins: 
					'hapi-auth-cookie':
						redirectTo: route.redirect
		}

		query.from ?= 0

		next = JSON.parse JSON.stringify query # clone
		next.from = parseInt(query.from, 10) + parseInt(query.size, 10)

		if query.size <= currentResults
			nextLink = pathname + '?'
			for key, val of next
				nextLink += "#{key}=#{val}&"
		else
			nextLink = undefined

		prev = JSON.parse JSON.stringify query
		prev.from = parseInt(query.from, 10) - parseInt(query.size, 10)

		if prev.from >= 0
			prevLink = pathname + '?'
			for key, val of prev
				prevLink += "#{key}=#{val}&"
