File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -26,3 +26,14 @@ export type Price = {
2626 termOfferingClass ?: string ;
2727 description ?: string ;
2828} ;
29+
30+ export type Emission = {
31+ emissionHash : string ;
32+ unit : string ;
33+ CO2e : string ;
34+ effectiveDateStart : string ;
35+ effectiveDateEnd ?: string ;
36+ startUsageAmount ?: string ;
37+ endUsageAmount ?: string ;
38+ description ?: string ;
39+ }
Original file line number Diff line number Diff line change 11import { IResolvers } from '@graphql-tools/utils' ;
22import mingo from 'mingo' ;
3- import { Price , Product } from './db/types' ;
3+ import { Emission , Price , Product } from './db/types' ;
44import currency , { CURRENCY_CODES } from './utils/currency' ;
55import { findProducts } from './db/query' ;
66import { ApplicationOptions } from './app' ;
@@ -28,6 +28,10 @@ interface PricesArgs {
2828 filter : Filter ;
2929}
3030
31+ interface EmissionsArgs {
32+ filter : Filter ;
33+ }
34+
3135type TransformedProductAttribute = {
3236 key : string ;
3337 value : string ;
@@ -77,6 +81,20 @@ const getResolvers = <TContext>(
7781
7882 return prices ;
7983 } ,
84+ emissions : async ( product : Product , args : EmissionsArgs ) : Promise < Emission [ ] > => {
85+ const emission = {
86+ emissionHash : 'sampleEmissionHash' ,
87+ unit : 'kgeqCO2' ,
88+ CO2e : '10' ,
89+ effectiveDateStart : '2021-01-01' ,
90+ effectiveDateEnd : '2021-12-31' ,
91+ startUsageAmount : '0' ,
92+ endUsageAmount : '100' ,
93+ description : 'test' ,
94+ } ;
95+
96+ return [ emission ] ;
97+ } ,
8098 } ,
8199 Price :
82100 // For every alternate currency, add a resolver that converts from USD.
Original file line number Diff line number Diff line change @@ -18,6 +18,17 @@ const typeDefs = gql`
1818 termOfferingClass: String
1919 }
2020
21+ type Emission {
22+ emissionHash: String!
23+ unit: String!
24+ CO2e: String!
25+ effectiveDateStart: String
26+ effectiveDateEnd: String
27+ startUsageAmount: String
28+ endUsageAmount: String
29+ description: String
30+ }
31+
2132 type Product {
2233 productHash: String!
2334 vendorName: String!
@@ -27,6 +38,7 @@ const typeDefs = gql`
2738 sku: String!
2839 attributes: [Attribute]
2940 prices(filter: PriceFilter): [Price]
41+ emissions(filter: EmissionFilter): [Emission]
3042 }
3143
3244 type Attribute {
@@ -61,6 +73,14 @@ const typeDefs = gql`
6173 termOfferingClass: String
6274 }
6375
76+ input EmissionFilter {
77+ unit: String
78+ description: String
79+ description_regex: String
80+ startUsageAmount: String
81+ endUsageAmount: String
82+ }
83+
6484 type Query {
6585 products(filter: ProductFilter): [Product]
6686 }
You can’t perform that action at this time.
0 commit comments