Newer
Older
flow-task / server / App / Controller / AuthController.php
<?php

namespace App\Controller;

use \App\Models\Auth;

class AuthController {

	public function signup() {
		list($uname, $password) = get_expected_vars($_GET, ["username", "password"]);
		$uname = sanitize_input($uname);

		$auth = new Auth();

		if($auth -> user_name_is_exists($uname)) {
			return error_response("signup", "Username already exists");
		}

		$user = $auth -> signup($uname, $password);

		if(!$user) {
			return error_response("signup", "Unknown error");
		}

		return success_response([
			"user_id" => $user -> get_id()
		]);
	}

	public function signin() {
		list($uname, $password) = get_expected_vars($_GET, ["username", "password"]);
		$uname = sanitize_input($uname);

		$auth = new Auth();

		$session = $auth -> signin($uname, $password);

		if(!$session) {
			return error_response("signin", "Wrong username or password");
		}

		return success_response([
			"session" => [
				"token" => $session -> token,
				"user" => [
					"id" => $session -> user() -> get_id(),
					"name" => $session -> user() -> name
				]
			]
		]);
	}

	public function signout() {
		list($token) = get_expected_vars($_GET, ["token"]);
		$token = sanitize_input($token);
		
		$auth = new Auth();

		if(!$auth -> signout($token)) {
			return error_response("signout", "Unknown error");
		}

		return success_response();
	}
}