📄
src/Api/TikTokApiEndpoints.cs
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Routing; using Slopper.Api.TikTokAuth; namespace Slopper.Api; public static class TikTokApiEndpoints { extension(IEndpointRouteBuilder endpoints) { public IEndpointConventionBuilder MapTikTokApi() { var tiktok = endpoints.MapGroup("/tiktok").RequireTikTokAuthorization(); tiktok.MapGet("/login", Login).WithDisplayName("TikTok Login"); tiktok.MapGet("/name", Name).WithDisplayName("Returns signed in TikTok user's name"); return tiktok; } } private static RedirectHttpResult Login() => TypedResults.Redirect("/admin/tiktok"); private static Results<Ok<string>, UnauthorizedHttpResult> Name(HttpContext httpContext) => httpContext.User.Identity?.Name is string name ? TypedResults.Ok(name) : TypedResults.Unauthorized(); }