/// //Método para efetuar a editaçao de uma publicacao public Retorno EditarPost(string id, PostAtt postatt, string tokenAutor) { //tento realizar a conversao do guid if (!Guid.TryParse(id, out Guid ident)) { return new Retorno { Status = false, Resultado = new List <string> { "Id inválido" } } } ; if (!Guid.TryParse(tokenAutor, out Guid token)) { return new Retorno { Status = false, Resultado = "Token inválido" } } ; if (postatt.Titulo == null) { postatt.Titulo = ""; } if (postatt.Titulo.Length < 8 || postatt.Texto.Length > 250) { return new Retorno { Status = false, Resultado = new List <string> { "Tamanho do titulo inválido, minimo de 5 e maximo de 250 caracteres" } } } ; if (postatt.Texto == null) { postatt.Texto = ""; } if (postatt.Texto.Length < 50) { return new Retorno { Status = false, Resultado = new List <string> { "Tamanho do texto inválido, minimo de 50 caracteres" } } } ; //checko se o post realmente existe var umPost = _arm.Posts.Find(c => c.Id == ident); if (umPost == null) { return new Retorno { Status = false, Resultado = new List <string> { "Esse post não existe!" } } } ; //checko se o usuario tem autorização para editar o post var usuarioForum = _arm.Usuarios.Find(e => e.Id == token); if (usuarioForum == null) { return new Retorno { Status = false, Resultado = new List <string> { "Usuario nao existe na base de dados" } } } ; if (umPost.Autor.Email != usuarioForum.Email) { return new Retorno { Status = false, Resultado = new List <string> { "Autorização para editar esse post negada" } } } ; //mapeamento _mapper.Map(postatt, umPost); //Validação para limitar a mudança de status de aberta nos post do tipo tutorial if (umPost.Tipo.ToUpper() == "TUTORIAL") { umPost.Status = null; } //verifico se o status fornecido é valido if (umPost.Status.ToUpper() != "FECHADA" && umPost.Status.ToUpper() != "ABERTA") { return new Retorno { Status = false, Resultado = new List <string> { "Para fechar uma publicacao , é necessario mudar o status para fechada" } } } ; Arquivo.Salvar(_arm); return(new Retorno { Status = true, Resultado = umPost }); }
public async Task <IActionResult> Atualizar([FromHeader] string tokenAutor, [FromBody] PostAtt postAtt, string id) { var Core = new PostCore(_mapper).EditarPost(id, postAtt, tokenAutor); return(Core.Status ? Ok(Core) : (IActionResult)BadRequest(Core)); }