Exemple #1
0
        public override JsonOperationResponseBase OnOperation(Arguments arguments, Authentication authentication)
        {
            ContentType = "text/plain";

            CreateAccountData request = new CreateAccountData()
            {
                username = arguments["username"],
                password = arguments["password"]
            };

            if (!request.IsValidRequest())
            {
                return(new CreateAccountResponse()
                {
                    Error = "All fields were not filled out"
                });
            }

            if (!User.IsValidUsername(request.username, out string usernameError))
            {
                return(new CreateAccountResponse()
                {
                    Error = string.Format("Invalid username, {0}", usernameError)
                });
            }
            if (!User.IsValidPassword(request.password, out string passwordError))
            {
                return(new CreateAccountResponse()
                {
                    Error = string.Format("Invalid password, {0}", passwordError)
                });
            }

            User newUser = User.CreateNewUser(request.username, request.password);

            Session session = UserManager.Instance.SignInAsUser(request.username, request.password);

            OutputConsole.WriteLine("New user signed up " + newUser.UserID + " (" + newUser.Username + ")");

            return(new CreateAccountResponse()
            {
                sessionID = session.Key
            });
        }