Exemplo n.º 1
0
        public async Task <IActionResult> Put([FromBody] EditUserRequest request)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            if (!await _userService.DoesUserExist(id: userId))
            {
                return(NotFound());
            }

            if (!await _userService.OldPasswordIsCorrect(userId, request))
            {
                return(BadRequest(Texts.PASSWORD_IS_NOT_CORRECT));
            }

            if (await _userService.EditUser(id: userId, request: request))
            {
                return(Ok());
            }

            return(StatusCode(statusCode: 500, value: Texts.ERROR_EDITING_THE_USER));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> DeleteRegister(int id)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            // Check if the register with that Id belongs to the user.
            if (!await _registerService.DoesRegisterBelongToUser(userId, registerId: id))
            {
                return(BadRequest());
            }

            var registerDeleted = await _registerService.DeleteRegister(userId, registerId : id);

            if (registerDeleted == null)
            {
                return(StatusCode(statusCode: 500, value: Texts.ERROR_DELETING_ELEMENT));
            }

            return(Ok(registerDeleted));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> GetRegister(int id)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            // Check is the register does belong to the user
            if (!await _registerService.DoesRegisterBelongToUser(userId, registerId: id))
            {
                return(BadRequest());
            }

            var register = await _registerService.GetRegister(userId, registerId : id);

            if (register == null)
            {
                return(NotFound());
            }

            return(Ok(register));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> DownloadRegister(int id)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            // Check is the register does belong to the user
            if (!await _registerService.DoesRegisterBelongToUser(userId, registerId: id))
            {
                return(BadRequest());
            }

            // IMPORTANT: At this time, only file downloads are allowed.
            // ToDo: Download a complete folder.
            var fileToSend = await _registerService.GetFile(userId, registerId : id);

            if (fileToSend == null)
            {
                return(BadRequest(Texts.ERROR_PREPARING_ELEMENT_TO_DOWNLOAD));
            }

            return(File(
                       fileContents: fileToSend.Bytes,
                       contentType: fileToSend.MimeType,
                       fileDownloadName: fileToSend.Name
                       ));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> MoveRegister([FromBody] MoveRegisterRequest request)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            // Check if the register and destiny folder belong to the user.
            if (!await _registerService.DoesRegisterBelongToUser(userId, registerId: request.RegisterId) ||
                (request.DestinyFolderId.HasValue &&
                 !await _registerService.DoesFolderBelongToUser(userId, folderId: request.DestinyFolderId.Value)))
            {
                return(BadRequest());
            }

            // Check if the destiny folder is a sub folder of the origin folder
            if (request.DestinyFolderId.HasValue &&
                await _registerService.IsDestinyFolderASubFolderOfFolderToMove(folderToMoveId: request.RegisterId, destinyFolderId: request.DestinyFolderId.Value))
            {
                return(BadRequest(Texts.DESTINY_FOLDER_IS_SUB_FOLDER_OF_ORIGIN_FOLDER));
            }

            var nameOfRegister = await _registerService.GetNameOfRegister(registerId : request.RegisterId);

            if (nameOfRegister == null)
            {
                return(StatusCode(statusCode: 500, value: Texts.ERROR_MOVING_REGISTER));
            }

            // Check if the name of the register to move already exists in the destiny folder.
            if (await _registerService.DoesFileOrFolderAlreadyExist(userId, name: nameOfRegister, parentFolder: request.DestinyFolderId))
            {
                return(BadRequest(Texts.FILE_FOLDER_ALREADY_EXISTS_IN_DESTINY));
            }

            var registerChanged = await _registerService.MoveRegister(userId, request);

            if (registerChanged == null)
            {
                return(StatusCode(statusCode: 500, value: Texts.ERROR_MOVING_REGISTER));
            }

            return(Ok(registerChanged));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> AddFolder([FromBody] AddFolderRequest request)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            if (request.ParentFolder != null)
            {
                // Check if the parent folder does belong to the user
                if (!await _registerService.DoesFolderBelongToUser(
                        userId, folderId: request.ParentFolder.Value))
                {
                    return(BadRequest());
                }
            }

            // Check if the folder name is valid
            if (!FileNameUtility.FileFolderNameIsValid(request.Name))
            {
                return(BadRequest(Texts.INVALID_FILE_NAME));
            }

            // Check if the folder does not exist
            if (await _registerService.DoesFileOrFolderAlreadyExist(userId, name: request.Name, parentFolder: request.ParentFolder))
            {
                return(BadRequest(Texts.FILE_FOLDER_ALREADY_EXISTS));
            }

            var folderAdded = await _registerService.AddFolder(userId, parentFolder : request.ParentFolder, request);

            if (folderAdded == null)
            {
                return(StatusCode(statusCode: 500, value: Texts.ERROR_CREATING_FOLDER));
            }

            return(Ok(folderAdded));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> ChangeRegisterName([FromBody] ChangeRegisterNameRequest request)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            // Check if the register does belong to the user.
            if (!await _registerService.DoesRegisterBelongToUser(userId, registerId: request.RegisterId))
            {
                return(BadRequest());
            }

            // Check if the new name is valid.
            if (!FileNameUtility.FileFolderNameIsValid(request.NewName))
            {
                return(BadRequest(Texts.INVALID_FILE_NAME));
            }

            // Check if the new name already exists in the parent folder.
            var parentFolderId = await _registerService.GetParentFolderForRegister(request.RegisterId);

            if (await _registerService.DoesFileOrFolderAlreadyExist(userId, name: request.NewName, parentFolder: parentFolderId))
            {
                return(BadRequest(Texts.FILE_FOLDER_ALREADY_EXISTS));
            }

            var registerChanged = await _registerService.ChangeRegisterName(userId, request);

            if (registerChanged == null)
            {
                return(StatusCode(statusCode: 500, value: Texts.ERROR_MODIFYING_REGISTER));
            }

            return(Ok(registerChanged));
        }
Exemplo n.º 8
0
        public async Task <ActionResult <IEnumerable <Register> > > GetRegistersFromFolder(int id)
        {
            var userIdString = JWTUtility.GetUserId(User);

            if (userIdString == null)
            {
                return(BadRequest());
            }

            var userId = int.Parse(userIdString);

            int?registerId;

            if (id == 0)
            {
                registerId = null;
            }
            else
            {
                registerId = id;
            }

            // Check is the register does belong to the user
            // If the register is null, the folder is the user's root folder
            if (registerId.HasValue && !await _registerService.DoesRegisterBelongToUser(userId, registerId.Value))
            {
                return(BadRequest());
            }

            var subRegisters = await _registerService.GetSubRegistersFromFolder(userId, folderId : registerId);

            if (subRegisters == null)
            {
                return(NotFound());
            }

            return(Ok(subRegisters));
        }