Files
blog/internal/strapi/queries/post_queries.graphql
2026-02-15 22:19:51 -05:00

101 lines
1.8 KiB
GraphQL

# Fragment for full post content
fragment Post on Post {
title
slug
meta_title
meta_description
featured
reading_time
createdAt
updatedAt
# @genqlient(flatten: true)
author {
...Author
}
# @genqlient(flatten: true)
tags {
...Tag
}
excerpt
content
# @genqlient(flatten: true)
featured_image {
...FeaturedImage
}
}
# Fragment for post summary
fragment PostSummary on Post {
title
slug
featured
reading_time
createdAt
updatedAt
# @genqlient(flatten: true)
author {
...Author
}
# @genqlient(flatten: true)
tags {
...Tag
}
excerpt
# @genqlient(flatten: true)
featured_image {
...FeaturedImage
}
}
# Fragment for featured image
fragment FeaturedImage on UploadFile {
name
url
}
# Get all posts
query GetAllPosts($pageSize: Int = 10, $page: Int = 1) {
# @genqlient(flatten: true)
posts(pagination: { pageSize: $pageSize, page: $page }) {
...Post
}
}
# Get featured posts
query GetFeaturedPosts($pageSize: Int = 10, $page: Int = 1) {
# @genqlient(flatten: true)
posts(pagination: { pageSize: $pageSize, page: $page }
filters: { featured: { eq: true } }
) {
...PostSummary
}
}
# Get specific post (by slug)
query GetPost($slug: String!) {
# @genqlient(flatten: true)
posts(filters: { slug: { eq: $slug } }) {
...Post
}
}
# Get post summaries
query GetPostSummaries($pageSize: Int = 10, $page: Int = 1) {
# @genqlient(flatten: true)
posts(pagination: { pageSize: $pageSize, page: $page }) {
...PostSummary
}
}
# Get posts by tag (slug)
query GetPostsByTag($tag: String!,$pageSize: Int = 10, $page: Int = 1) {
# @genqlient(flatten: true)
posts(
pagination: { pageSize: $pageSize, page: $page },
filters: { tags: { slug: { eq: $tag } } }
) {
...PostSummary
}
}