public override string OnOperation(Arguments arguments, Authentication authentication)
        {
            ContentType = "application/json";

            LikeRequestData request = new LikeRequestData()
            {
                modId = arguments["modId"]
            };

            if (!request.IsValidRequest())
            {
                return("false");
            }

            if (!authentication.IsSignedIn)
            {
                return("false");
            }

            if (!UploadedModsManager.Instance.HasModWithIdBeenUploaded(request.modId))
            {
                return("false");
            }

            string userId = authentication.UserID;

            User user = UserManager.Instance.GetUserFromId(userId);

            bool hasLiked = user.LikedMods.Contains(request.modId);

            return(hasLiked ? "true" : "false");
        }
Example #2
0
        public override JsonOperationResponseBase OnOperation(Arguments arguments, Authentication authentication)
        {
            LikeRequestData request = new LikeRequestData()
            {
                likedModId = arguments["likedModId"],
                likeState  = arguments["likeState"]
            };

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

            if (!authentication.IsSignedIn)
            {
                return(new LikeRequestResponse()
                {
                    Error = "You are not signed in."
                });
            }

            if (!UploadedModsManager.Instance.HasModWithIdBeenUploaded(request.likedModId))
            {
                return(new LikeRequestResponse()
                {
                    Error = "No mod with that id exists"
                });
            }

            string userId = authentication.UserID;

            User           user    = UserManager.Instance.GetUserFromId(userId);
            SpecialModData modData = UploadedModsManager.Instance.GetSpecialModInfoFromId(request.likedModId);

            if (request.likeState)
            {
                if (!user.LikedMods.Contains(request.likedModId))
                {
                    user.LikedMods.Add(request.likedModId);
                    user.Save();
                    modData.Likes++;
                    modData.Save();
                }
                else
                {
                    return(new LikeRequestResponse()
                    {
                        Error = "You have already liked that mod!"
                    });
                }
            }
            else
            {
                if (user.LikedMods.Contains(request.likedModId))
                {
                    user.LikedMods.Remove(request.likedModId);
                    user.Save();
                    modData.Likes--;
                    modData.Save();
                }
                else
                {
                    return(new LikeRequestResponse()
                    {
                        Error = "You havent liked that mod!"
                    });
                }
            }

            return(new LikeRequestResponse()
            {
                message = "Your liked status has been updated!"
            });
        }