# Users ## Create **post** `/user` This can only be done by the logged in user. ### Returns - `User = object { id, email, firstName, 5 more }` - `id: optional number` - `email: optional string` - `firstName: optional string` - `lastName: optional string` - `password: optional string` - `phone: optional string` - `username: optional string` - `userStatus: optional number` User Status ## Retrieve **get** `/user/{username}` Get user by user name ### Returns - `User = object { id, email, firstName, 5 more }` - `id: optional number` - `email: optional string` - `firstName: optional string` - `lastName: optional string` - `password: optional string` - `phone: optional string` - `username: optional string` - `userStatus: optional number` User Status ## Update **put** `/user/{username}` This can only be done by the logged in user. ## Delete **delete** `/user/{username}` This can only be done by the logged in user. ## Create With List **post** `/user/createWithList` Creates list of users with given input array ### Returns - `User = object { id, email, firstName, 5 more }` - `id: optional number` - `email: optional string` - `firstName: optional string` - `lastName: optional string` - `password: optional string` - `phone: optional string` - `username: optional string` - `userStatus: optional number` User Status ## Login **get** `/user/login` Logs user into the system ## Logout **get** `/user/logout` Logs out current logged in user session ## Domain Types ### User - `User = object { id, email, firstName, 5 more }` - `id: optional number` - `email: optional string` - `firstName: optional string` - `lastName: optional string` - `password: optional string` - `phone: optional string` - `username: optional string` - `userStatus: optional number` User Status