public async Task <IActionResult> Register([FromBody] RegisterPayload registerPayload)
        {
            try
            {
                var existingUserWithMail = _db.Users
                                           .Any(u => u.Email == registerPayload.Email);

                if (existingUserWithMail)
                {
                    return(BadRequest(new { status = false, message = "Email already exists" }));
                }
                var userToCreate = new User
                {
                    Email        = registerPayload.Email,
                    FirstName    = registerPayload.FirstName,
                    LastName     = registerPayload.LastName,
                    Gender       = registerPayload.Gender,
                    PasswordHash = BC.HashPassword(registerPayload.Password),
                    Role         = "SimpleUser",
                };

                _db.Users.Add(userToCreate);

                _db.SaveChanges();

                return(Ok(new { status = true, user = userToCreate }));
            }
            catch (Exception)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }
Beispiel #2
0
        public ActionResult FollowUser(int id1, int id2)
        {
            var token      = HttpContext.Request.Headers["token"].ToString();
            var validation = ValidateJwtToken(token);

            if (validation != null)
            {
                if (id1 != validation)
                {
                    return(new StatusCodeResult(StatusCodes.Status401Unauthorized));
                }
                try
                {
                    var followQuery = _db.Follows.Where(follow => id1 == follow.User && id2 == follow.Follows);

                    if (!followQuery.Any())
                    {
                        var followToAdd = new Follow
                        {
                            User    = id1,
                            Follows = id2
                        };

                        _db.Follows.Add(followToAdd);
                        _db.SaveChanges();

                        return(Ok(new { message = "isFollowed" }));
                    }
                    else
                    {
                        _db.Follows.Remove(followQuery.Single());
                        _db.SaveChanges();

                        return(Ok(new { message = "isNotFollowed" }));
                    }
                }
                catch (Exception)
                {
                    return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
                }
            }
            else
            {
                return(new StatusCodeResult(StatusCodes.Status401Unauthorized));
            }
        }
        public ActionResult <User> Create([FromBody] UserPayload payload)
        {
            try
            {
                var userToAdd = new User
                {
                    FirstName = payload.FirstName,
                    LastName  = payload.LastName,
                    Email     = payload.Email,
                    Gender    = payload.Gender
                };

                _db.Users.Add(userToAdd);
                _db.SaveChanges();

                return(Ok(userToAdd));
            }
            catch (Exception)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }
Beispiel #4
0
        public ActionResult <Post> AddPost([FromBody] PostPayload payload)
        {
            var token      = HttpContext.Request.Headers["token"].ToString();
            var validation = ValidateJwtToken(token);

            if (validation != null)
            {
                if (payload.UserId != validation)
                {
                    return(new StatusCodeResult(StatusCodes.Status401Unauthorized));
                }
                try
                {
                    var postToAdd = new Post
                    {
                        Title    = payload.Title,
                        Text     = payload.Text,
                        Username = payload.Username,
                        UserId   = payload.UserId,
                        ImgUrl   = payload.ImgUrl,
                    };

                    _db.Posts.Add(postToAdd);
                    _db.SaveChanges();

                    return(Ok(postToAdd));
                }
                catch (Exception)
                {
                    return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
                }
            }
            else
            {
                return(new StatusCodeResult(StatusCodes.Status401Unauthorized));
            }
        }
Beispiel #5
0
        public ActionResult <Comment> AddComment([FromBody] CommentPayload payload)
        {
            var token      = HttpContext.Request.Headers["token"].ToString();
            var validation = ValidateJwtToken(token);

            if (validation != null)
            {
                if (payload.UserId != validation)
                {
                    return(new StatusCodeResult(StatusCodes.Status401Unauthorized));
                }
                try
                {
                    var commentToAdd = new Comment
                    {
                        UserId   = payload.UserId,
                        Text     = payload.Text,
                        PostId   = payload.PostId,
                        Username = payload.Username,
                    };

                    _db.Comments.Add(commentToAdd);
                    _db.SaveChanges();

                    return(Ok(commentToAdd));
                }
                catch (Exception)
                {
                    return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
                }
            }
            else
            {
                return(new StatusCodeResult(StatusCodes.Status401Unauthorized));
            }
        }