## Methods - GET `/` - Response - 200 Ok - HTML `"This is a POKO server"` - GET `/user/` - Response - 200 Ok - JSON `{"name": "NAME", "id": "ID"}` - 404 Not Found - JSON `"Not Found"` - GET `/user/by_name/` - Response - 200 Ok - JSON `[{"name": "NAME", "id": "ID"}, ...]` - 400 Not Found - JSON `"Not Found"` - GET `/user/list` - Same as GET `/user/by_name/` - POST `/user/register` - Request - JSON `{"name":"NAME", "password": "PASSWORD", "id": "ID", "key": "REGISTRATION KEY"}` - ID is optional - A new server with a new database has one key "ADMIN" which creates an admin user - Response - 201 Created - JSON `{"name":"NAME", "id": "ID"}` - 400 Bad Request - JSON `"UID is taken"` - JSON `"Invalid Username"` - 500 Internal Server Error - JSON `"No available UID left"` - JSON `"UID length is incorrect"` - JSON `"UID String is not valid"` - JSON `"Invalid key"` - POST `/user/get` - Request - JSON `{"id": "ID", "session": "SESSION_KEY"}` - Response - 200 Ok - JSON `{"name": "NAME", "id": "ID", is_admin: bool, tokovec: [{"color": "COLOR", "amount": 2}, ..]}` - 404 Not Found - JSON `"Not Found"` - JSON `"Not Authenticated"` - POST `/user/login` - Request - JSON `{"id": "ID", "password": "PASSWORD", "clientid": "CLIENT_ID"}` - Response - 200 Ok - JSON `"SESSION_KEY"` - The session key is needed for any authenticated action - 401 Unauthorized - JSON `"Could not login"` - POST `/user/logout` - Request - JSON `{"id": "ID", "session": "SESSION_KEY"}` - Response - 200 Ok - 401 Unauthorized - JSON `"Not Authenticated"` - POST `/user/logout/all` - Request - JSON `{"id": "ID", "session": "SESSION_KEY"}` - Response - 200 Ok - JSON `"Logged out of everything"` - 401 Unauthorized - JSON `"Not Authenticated"` - POST `/user/sessions` - Request - JSON `{"id": "ID", "session": "SESSION_KEY"}` - Response - 200 Ok - JSON `["SESSION_KEY":"CLIENT_ID"]` - 401 Unauthorized - JSON `"Not Authenticated"` - POST `/user/delete` - Request - JSON `{"id": "ID", "session": "SESSION_KEY", "password": "PASSWORD"}` - Response - 200 Ok - JSON `"Deleted"` - 401 Unauthorized - JSON `"Not Authenticated"` - POST `/transfer/out` - Request - JSON `{"id": "ID", "session": "SESSION_KEY", "to": "ID", "color": "COLOR", "amount": 0}` - ID and SESSION_KEY are from the from account - TO_ID is the account the tokens are going to - amount may be 0 - Response - 200 Ok - 500 Internal Server Error - JSON `"Could not complete transaction"` - POST `/user/update/password` - Request - JSON `{"id": "ID", "session": "SESSION_KEY", "old_password": "PASSWORD", "new_password": "PASSWORD"}` - Response - 200 Ok - 500 Internal Server Error` - POST `/user/update/name` - Request - JSON `{"id": "ID", "session": "SESSION_KEY", "name": "USERNAME"}` - Response - 200 Ok - 500 Internal Server Error - POST `/admin/regkey/new` - Request - JSON `{"id": "ID", "session": "SESSION_KEY", "key": "REGISTRATION_KEY"}` - Response - 200 Ok - 500 Internal Server Error - JSON `"Not an admin"` - JSON `"Key already exists"` - JSON `"Keys aren't used on this server"` - POST `/admin/regkey/del` - Request - JSON `{"id": "ID", "session": "SESSION_KEY", "key": "REGISTRATION_KEY"}` - Response - 200 Ok - 500 Internal Server Error - JSON `"Not an admin"` - JSON `"Could not find key"` - JSON `"Keys aren't used on this server"` - POST `/admin/regkey/list` - Request - JSON `{"id": "ID", "session": "SESSION_KEY"}` - Response - 200 Ok - 500 Internal Server Error - JSON `"Not an admin"` - JSON `"Keys aren't used on this server"`