public async Task <ActionResult <DeckResult> > GetDeckById([FromRoute] Guid deckId) { var deckDbo = await deckRepo.FindAsync(deckId); if (deckDbo is null) { return(NotFound()); } return(Ok(mapper.Map <DeckDbo, DeckResult>(deckDbo))); }
protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, MustBeDeckOwnerRequirement requirement) { var userId = context.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (userId is null) { context.Fail(); return; } var httpContext = httpContextAccessor.HttpContext; var deckIdString = httpContext?.GetRouteValue("deckId")?.ToString(); if (!Guid.TryParse(deckIdString, out var deckId)) { context.Fail(); return; } var deck = await deckRepository.FindAsync(deckId); if (deck is null) { context.Succeed(requirement); return; } if (deck.Author.Id == userId) { context.Succeed(requirement); return; } context.Fail(); }
public async Task <ActionResult <IEnumerable <CardResult> > > GetCards([FromRoute] Guid deckId) { var deck = await deckRepo.FindAsync(deckId); if (deck is null) { return(NotFound()); } return(Ok(mapper.Map <IEnumerable <CardDbo>, IEnumerable <CardResult> >(deck.Cards))); }