Quellcode durchsuchen

feat(server): Use ISO date-times for all dates

Fixes #6, closes #7
Michael Bromley vor 7 Jahren
Ursprung
Commit
73c47e226c

+ 16 - 0
admin-ui/src/app/data/types/gql-generated-types.ts

@@ -1072,6 +1072,8 @@ export interface ProductListOptions {
 
 export interface ProductSortParameter {
     id?: SortOrder | null;
+    createdAt?: SortOrder | null;
+    updatedAt?: SortOrder | null;
     name?: SortOrder | null;
     slug?: SortOrder | null;
     description?: SortOrder | null;
@@ -1085,6 +1087,8 @@ export interface ProductFilterParameter {
     name?: StringOperators | null;
     slug?: StringOperators | null;
     description?: StringOperators | null;
+    createdAt?: DateOperators | null;
+    updatedAt?: DateOperators | null;
     infoUrl?: StringOperators | null;
     downloadable?: BooleanOperators | null;
     nickname?: StringOperators | null;
@@ -1095,6 +1099,18 @@ export interface StringOperators {
     contains?: string | null;
 }
 
+export interface DateOperators {
+    eq?: any | null;
+    before?: any | null;
+    after?: any | null;
+    between?: DateRange | null;
+}
+
+export interface DateRange {
+    start: any;
+    end: any;
+}
+
 export interface BooleanOperators {
     eq?: boolean | null;
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
schema.json


+ 1 - 0
server/package.json

@@ -30,6 +30,7 @@
     "bcrypt": "^2.0.1",
     "body-parser": "^1.18.3",
     "graphql": "^14.0.0-rc.2",
+    "graphql-iso-date": "^3.5.0",
     "graphql-tools": "^3.0.2",
     "graphql-type-json": "^0.2.1",
     "i18next": "^11.3.3",

+ 4 - 0
server/src/api/customer/customer.api.graphql

@@ -24,6 +24,8 @@ input CustomerListOptions {
 
 input CustomerSortParameter {
     id: SortOrder
+    createdAt: SortOrder
+    updatedAt: SortOrder
     firstName: SortOrder
     lastName: SortOrder
     phoneNumber: SortOrder
@@ -35,4 +37,6 @@ input CustomerFilterParameter {
     lastName: StringOperators
     phoneNumber: StringOperators
     emailAddress: StringOperators
+    createdAt: DateOperators
+    updatedAt: DateOperators
 }

+ 4 - 0
server/src/api/product/product.api.graphql

@@ -32,6 +32,8 @@ input ProductListOptions {
 
 input ProductSortParameter {
     id: SortOrder
+    createdAt: SortOrder
+    updatedAt: SortOrder
     name: SortOrder
     slug: SortOrder
     description: SortOrder
@@ -42,4 +44,6 @@ input ProductFilterParameter {
     name: StringOperators
     slug: StringOperators
     description: StringOperators
+    createdAt: DateOperators
+    updatedAt: DateOperators
 }

+ 2 - 0
server/src/app.module.ts

@@ -2,6 +2,7 @@ import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
 import { GraphQLFactory, GraphQLModule } from '@nestjs/graphql';
 import { TypeOrmModule } from '@nestjs/typeorm';
 import { graphiqlExpress, graphqlExpress } from 'apollo-server-express';
+import { GraphQLDateTime } from 'graphql-iso-date';
 import * as GraphQLJSON from 'graphql-type-json';
 
 import { CustomFields } from '../../shared/shared-types';
@@ -92,6 +93,7 @@ export class AppModule implements NestModule {
             },
             resolvers: {
                 JSON: GraphQLJSON,
+                DateTime: GraphQLDateTime,
             },
         });
     }

+ 9 - 7
server/src/common/common-types.graphql

@@ -1,3 +1,7 @@
+# Third-party custom scalars
+scalar JSON
+scalar DateTime
+
 interface PaginatedList {
     items: [Node!]!
     totalItems: Int!
@@ -36,15 +40,13 @@ input NumberOperators {
 }
 
 input DateRange {
-    start: String!
-    end: String!
+    start: DateTime!
+    end: DateTime!
 }
 
 input DateOperators {
-    eq: String
-    before: String
-    after: String
+    eq: DateTime
+    before: DateTime
+    after: DateTime
     between: DateRange
 }
-
-scalar JSON

+ 25 - 23
server/src/entity/address/address.graphql

@@ -1,28 +1,30 @@
 type Address implements Node {
-  id: ID!
-  fullName: String
-  company: String
-  streetLine1: String
-  streetLine2: String
-  city: String
-  province: String
-  postalCode: String
-  country: String
-  phoneNumber: String
-  defaultShippingAddress: Boolean
-  defaultBillingAddress: Boolean
+    id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
+    fullName: String
+    company: String
+    streetLine1: String
+    streetLine2: String
+    city: String
+    province: String
+    postalCode: String
+    country: String
+    phoneNumber: String
+    defaultShippingAddress: Boolean
+    defaultBillingAddress: Boolean
 }
 
 input CreateAddressInput {
-  fullName: String
-  company: String
-  streetLine1: String
-  streetLine2: String
-  city: String
-  province: String
-  postalCode: String
-  country: String
-  phoneNumber: String
-  defaultShippingAddress: Boolean
-  defaultBillingAddress: Boolean
+    fullName: String
+    company: String
+    streetLine1: String
+    streetLine2: String
+    city: String
+    province: String
+    postalCode: String
+    country: String
+    phoneNumber: String
+    defaultShippingAddress: Boolean
+    defaultBillingAddress: Boolean
 }

+ 2 - 0
server/src/entity/administrator/administrator.graphql

@@ -1,5 +1,7 @@
 type Administrator implements Node {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     firstName: String
     lastName: String
     emailAddress: String

+ 13 - 11
server/src/entity/customer/customer.graphql

@@ -1,16 +1,18 @@
 type Customer implements Node {
-  id: ID!
-  firstName: String
-  lastName: String
-  phoneNumber: String
-  emailAddress: String
-  addresses: [Address]
-  user: User
+    id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
+    firstName: String
+    lastName: String
+    phoneNumber: String
+    emailAddress: String
+    addresses: [Address]
+    user: User
 }
 
 input CreateCustomerInput {
-  firstName: String
-  lastName: String
-  phoneNumber: String
-  emailAddress: String!
+    firstName: String
+    lastName: String
+    phoneNumber: String
+    emailAddress: String!
 }

+ 4 - 0
server/src/entity/product-option-group/product-option-group.graphql

@@ -1,5 +1,7 @@
 type ProductOptionGroup implements Node {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     code: String!
     name: String!
@@ -9,6 +11,8 @@ type ProductOptionGroup implements Node {
 
 type ProductOptionGroupTranslation {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     name: String!
 }

+ 4 - 0
server/src/entity/product-option/product-option.graphql

@@ -1,5 +1,7 @@
 type ProductOption implements Node {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode
     code: String
     name: String
@@ -8,6 +10,8 @@ type ProductOption implements Node {
 
 type ProductOptionTranslation {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     name: String!
 }

+ 4 - 0
server/src/entity/product-variant/product-variant.graphql

@@ -1,5 +1,7 @@
 type ProductVariant implements Node {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     sku: String!
     name: String!
@@ -11,6 +13,8 @@ type ProductVariant implements Node {
 
 type ProductVariantTranslation {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     name: String!
 }

+ 4 - 0
server/src/entity/product/product.graphql

@@ -1,5 +1,7 @@
 type Product implements Node {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     name: String!
     slug: String!
@@ -12,6 +14,8 @@ type Product implements Node {
 
 type ProductTranslation {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     languageCode: LanguageCode!
     name: String!
     slug: String!

+ 2 - 2
server/src/entity/user/user.graphql

@@ -1,9 +1,9 @@
 type User implements Node {
     id: ID!
+    createdAt: DateTime!
+    updatedAt: DateTime!
     identifier: String
     passwordHash: String
     roles: [String]
     lastLogin: String
-    createdAt: String
-    updatedAt: String
 }

+ 4 - 0
server/yarn.lock

@@ -2097,6 +2097,10 @@ graphql-extensions@^0.0.x, graphql-extensions@~0.0.9:
     core-js "^2.5.3"
     source-map-support "^0.5.1"
 
+graphql-iso-date@^3.5.0:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/graphql-iso-date/-/graphql-iso-date-3.5.0.tgz#55a1be0efa8d28c1453afd2eb5ce1d052189a513"
+
 graphql-request@^1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412"

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.