public async Task <ActionResult <int> > GetArticleContent([FromBody] NewArticleRequest articleRequest) { int articleId = await _articleRepository.SaveArticleRecord( articleRequest.ArticleAuthorId, articleRequest.ArticleFeatureImage, articleRequest.ArticleDisplayTitle, articleRequest.ArticleDisplaySubtitle, _mapper.Map <NewArticleContentRequest[], ArticleContentRequest[]>(articleRequest.ArticleContent) ); return(Ok(articleId)); }
public Task <SingleArticleResponse> Create(NewArticleRequest newArticle) { var options = new AjaxOptions { Url = $"{this._settings.ApiUri}/articles", Type = "POST", DataType = "json", ContentType = "application/json", Data = JsonConvert.SerializeObject(newArticle) }; return(base.MakeAuthorizedCall <SingleArticleResponse>(options)); }
public async Task <IActionResult> Post([FromBody] NewArticleRequest newArticleRequest) { try { var tokenHeader = Request.Headers["Authorization"]; var token = tokenHeader.Count > 0 ? tokenHeader.First().Split(' ')[1] : null; User currentUser = null; if (!string.IsNullOrWhiteSpace(token)) { currentUser = UserService.GetCurrentUser(token); } if (currentUser == null) { return(Unauthorized()); } var article = await ArticleService.CreateArticle(newArticleRequest.Article, token); return(article != null ? Created($"api/articles/{article.Slug}", new SingleArticleResponse { Article = new ArticleModel( article.Slug, article.Title, article.Description, article.Body, article.ArticleTags.Select(t => t.Tag.TagName).ToList(), article.CreatedAt, article.UpdatedAt, article.GetFavorited(currentUser), article.FavoritesCount, article.Author.Profile ) }) : (IActionResult)BadRequest("Not created.")); } catch (Exception ex) { var genericErrorModel = new GenericErrorModel(new GenericErrorModelErrors(new[] { ex.ToString() })); return(BadRequest(genericErrorModel)); } }
public async Task <Article> CreateArticleAsync(NewArticle article, string token, CancellationToken cancellationToken = default) { var body = new NewArticleRequest { Article = article }; var requestBody = JsonSerializer.Serialize(body, _jsonSerializerOptions); var httpRequest = new HttpRequestMessage(HttpMethod.Post, new Uri($"api/articles", UriKind.Relative)) { Content = new StringContent(requestBody, Encoding.UTF8, "application/json") }; httpRequest.Headers.Add("Authorization", $"Token {token}"); var response = await HandleRequest <ArticleObject>(httpRequest, cancellationToken); return(response.Article); }
public async Task Create() { // todo validations var newArticel = new NewArticleRequest { Article = new NewArticle { Title = this.Title.Self(), Body = this.Body.Self(), Description = this.Description.Self(), TagList = this.Tags.Self().Split(',').ToArray() } }; var article = await this._articleResources.Create(newArticel); this._navigator.Navigate(SpafApp.ArticleId, new Dictionary <string, object>() { { "slug", article.Article.Slug } }); }