public IActionResult PostRating([FromBody] RequestRating requestRating, [FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                string id = JWT.ExtractUserId(jwtDecoded);
                if (_context.Ratings.Any(u => u.UserId == Convert.ToInt32(id) && u.MovieId == requestRating.MovieId))
                {
                    return(Conflict(new Error("Rating already exists")));
                }
                if (requestRating.Score < 1 || requestRating.Score > 5)
                {
                    return(BadRequest(new Error("Score must be between 1 and 5")));
                }

                else
                {
                    Rating newRating = new Rating();
                    newRating.MovieId = requestRating.MovieId;
                    newRating.UserId  = Convert.ToInt32(id);
                    newRating.Score   = requestRating.Score;
                    _context.Add(newRating);
                    _context.SaveChanges();
                    return(NoContent());
                }
            }
        }
        public IActionResult PutRating([FromBody] RequestRating requestRating, [FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                string id     = JWT.ExtractUserId(jwtDecoded);
                var    rating = _context.Ratings.Where(u => u.UserId == Convert.ToInt32(id) && u.MovieId == requestRating.MovieId).FirstOrDefault();
                if (rating == null)
                {
                    return(NotFound(new Error("Rating doesn't exist")));
                }
                if (requestRating.Score < 1 || requestRating.Score > 5)
                {
                    return(BadRequest(new Error("Score must be between 1 and 5")));
                }
                else
                {
                    rating.Score = requestRating.Score;
                    _context.SaveChanges();
                    return(NoContent());
                }
            }
        }
Exemple #3
0
        public ActionResult <User> GetUser(string email, [FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                string id           = JWT.ExtractUserId(jwtDecoded);
                var    userApproved = _context.Users.Where(u => (u.Administrator == true) && (u.Id == Convert.ToInt32(id))).ToList();
                var    user         = _context.Users.Where(u => u.Email == Cryptography.HashString(email)).FirstOrDefault();
                if (userApproved.Count == 0)
                {
                    if (Authentification_Token == AdminJWT)
                    {
                        return(user);
                    }
                    return(Forbid());
                }
                else
                {
                    if (user == null)
                    {
                        return(NotFound(new Error("User doesn't exists")));
                    }

                    return(user);
                }
            }
        }
Exemple #4
0
        public ActionResult <List <User> > GetUsers([FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                string id           = JWT.ExtractUserId(jwtDecoded);
                var    userApproved = _context.Users.Where(u => (u.Administrator == true) && (u.Id == Convert.ToInt32(id))).ToList();
                if (userApproved.Count == 0)
                {
                    if (Authentification_Token == AdminJWT)
                    {
                        return(_context.Users.ToList());
                    }
                    return(Forbid());
                }
                else
                {
                    return(_context.Users.ToList());
                }
            }
        }
Exemple #5
0
        public ActionResult <string> CheckUser([FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                return(JWT.ExtractUserId(jwtDecoded));
            }
        }
        public ActionResult <int> GetRating(int movieId, [FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                string id     = JWT.ExtractUserId(jwtDecoded);
                var    rating = _context.Ratings.Where(u => u.UserId == Convert.ToInt32(id) && u.MovieId == movieId).FirstOrDefault();
                if (rating == null)
                {
                    return(NotFound(new Error("Rating doesn't exist")));
                }
                else
                {
                    return(rating.Score);
                }
            }
        }
        public ActionResult <Dictionary <int, int> > GetRatings([FromHeader] string Authentification_Token)
        {
            string jwtDecoded = JWT.CheckJWT(Authentification_Token);

            if (jwtDecoded == "Token has expired" || jwtDecoded == "Token has invalid signature")
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
            else
            {
                string id      = JWT.ExtractUserId(jwtDecoded);
                var    ratings = _context.Ratings.Where(u => u.UserId == Convert.ToInt32(id)).ToDictionary(u => u.MovieId, u => u.Score);
                if (ratings.Count == 0)
                {
                    return(NotFound(new Error("User doesn't have ratings")));
                }
                else
                {
                    Console.WriteLine("Ratings: " + ratings);
                    return(ratings);
                }
            }
        }