###
Returns a Application by it's ID
###
exports.get_by_id = (connection, app_id, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.id=? LIMIT 1;', [ 1 * app_id ], (err, results) ->

		if err
			fn err
		else
			fn err, results[0]

###
Returns a Token by it's Key and if it's still valid.
###
exports.get_valid_by_token = (connection, app_key, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.access_token=? LIMIT 1;', [ app_key ], (err, results) ->

		if err
			fn err
		else
			fn err, results[0]

###
Returns a Token by it's Key
###
exports.get_by_key = (connection, app_key, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.key=? LIMIT 1;', [ app_key ], (err, results) ->

		if err
			fn err
		else
			fn err, results[0]
###
Returns a Token by it's Key
###
exports.get_by_token = (connection, app_key, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.access_token=? LIMIT 1;', [ app_key ], (err, results) ->

		if err
			fn err
		else
			fn err, results[0]
###
Returns a Token by it's Key
###
exports.get_by_refresh = (connection, app_key, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.refresh=? LIMIT 1;', [ app_key ], (err, results) ->

		if err
			fn err
		else
			fn err, results[0]

###
Returns a Token by it's Key
###
exports.get_by_request_code = (connection, app_key, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.code=? LIMIT 1;', [ app_key ], (err, results) ->

		if err
			fn err
		else
			fn err, results[0]

###
Returns a Application by it's User ID
###
exports.get_by_user_id = (connection, user_id, fn) ->

	connection.query 'SELECT * FROM tokens WHERE tokens.user=?;', [ 1 * user_id ], (err, results) ->

		if err
			fn err
		else
			fn err, results

###
Handles validation and create or update a Application.

Only members are allowed depending on their groups
###
exports.save = (connection, org_params, fn) ->
	fn()

###
Removes the Application with the specified ID
###
exports.delete = (connection, org_id, fn) ->
	fn()

