Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(gatsby): Add aggregation resolvers #30789

Merged
merged 5 commits into from
Apr 12, 2021
Merged

Conversation

ascorbic
Copy link
Contributor

@ascorbic ascorbic commented Apr 9, 2021

Adds min(), max() and sum() resolvers to allXXX queries, similar to the current group and distinct.

Usage:

{
  allShopifyProduct {
    maxPrice: max(field: variants___price)
    minPrice: min(field: variants___price)
    totalPrice: sum(field: variants___price)
  }
}

It supports numeric fields, but also attempts to cast non-numeric fields, and includes them if the value is not NaN.

@gatsbot gatsbot bot added the status: triage needed Issue or pull request that need to be triaged and assigned to a reviewer label Apr 9, 2021
@ascorbic ascorbic force-pushed the feat/aggregation-queries branch from c81b74c to a657a23 Compare April 9, 2021 14:57
@ascorbic ascorbic requested a review from vladar April 9, 2021 15:04
@vladar vladar added topic: GraphQL Related to Gatsby's GraphQL layer and removed status: triage needed Issue or pull request that need to be triaged and assigned to a reviewer labels Apr 9, 2021
vladar
vladar previously approved these changes Apr 9, 2021
Copy link
Contributor

@vladar vladar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@@ -1646,7 +1764,7 @@ describe(`Query schema`, () => {
/**
* queries are read from file and parsed with babel
*/
it.only(`escape sequences work when correctly escaped`, async () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😬 Good catch!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to say the other tests were all passing when I removed that!

@KyleAMathews
Copy link
Contributor

This is great!

@ascorbic ascorbic merged commit 0e91c82 into master Apr 12, 2021
@ascorbic ascorbic deleted the feat/aggregation-queries branch April 12, 2021 08:02
moonmeister added a commit that referenced this pull request Apr 14, 2021
* master: (183 commits)
  chore(gatsby-plugin-image): Remove version note (#30758)
  docs: retire 'How to Create Pages' stub and Recipes landing page (#30842)
  chore(docs): Fix typo (#30858)
  docs: fix invalid mailto links in 3.3 release notes (#30862)
  docs: release notes for 3.3 (#30837)
  fix(gatsby-source-wordpress): invalidate less queries during previews (#30770)
  fix(gatsby-starter-wordpress-blog): Fix altText (#30832)
  feat(contentful): warn users when using restricted content type names (#30715)
  Refactor: using-contentful to use gatsby-plugin-image exclusively (#30717)
  chore(gatsby-plugin-styled-components): Remove breaking changes section (#30806)
  fix(gatsby): webpack warnings are no longer in object format by default (#30801)
  fix(gatsby): Decode base path in runtime (#30682)
  fix(gatsby): "Cannot find module 'babel-preset-gatsby'" error (#30813)
  handle plugin parentDir resolution in resolvePlugin() (#30812)
  Port using-gatsby-image site to image plugin (#28489)
  fix(gatsby-source-contentful): De-dupe type names (#30834)
  feat(gatsby): Add aggregation resolvers (#30789)
  fix(gatsby-core-utils): fetch-remote-file download failure when missing content-length header (#30810)
  fix(renovate): add breaking minor updates to major updates list (#30676)
  chore(docs): Update migration guide for plugins that support both v2 & v3 (#30825)
  ...
@nagiek
Copy link

nagiek commented Apr 25, 2021

Wanted to say thank you for this! It's a huge help!

@nagiek
Copy link

nagiek commented Apr 25, 2021

I did want to ask though if it were possible to add a “count” aggregation function? I don’t mind submitting a pull request.

Edit: Whoops, there is already a totalCount resolver.

pragmaticpat pushed a commit to pragmaticpat/gatsby that referenced this pull request Apr 28, 2022
* feat(gatsby): Add aggregation resolvers

* Update snapshots

* Update snapshot

* Update integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap

* Update snap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: GraphQL Related to Gatsby's GraphQL layer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants