Parcourir la source

add delete

dev
Christian Ziermann il y a 3 ans
Parent
révision
ca0fcc2bce
8 fichiers modifiés avec 9523 ajouts et 30 suppressions
  1. +72
    -10
      backend/graphql.schema.json
  2. +9383
    -3
      backend/package-lock.json
  3. +16
    -2
      backend/src/generated/graphql.ts
  4. +21
    -15
      backend/src/index.ts
  5. +9
    -0
      backend/src/resolver/pizza-resolver.ts
  6. +8
    -0
      backend/src/resolver/topping-resolver.ts
  7. +2
    -0
      backend/src/schema/schema.ts
  8. +12
    -0
      frontend/src/generated/graphql.ts

+ 72
- 10
backend/graphql.schema.json Voir le fichier

@@ -316,16 +316,6 @@
"enumValues": null,
"possibleTypes": null
},
{
"kind": "SCALAR",
"name": "Boolean",
"description": "The `Boolean` scalar type represents `true` or `false`.",
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null
},
{
"kind": "INPUT_OBJECT",
"name": "ChangePizzaDto",
@@ -542,6 +532,68 @@
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "deleteTopping",
"description": null,
"args": [
{
"name": "toppingId",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "Topping",
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "deletePizza",
"description": null,
"args": [
{
"name": "pizzaId",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "Pizza",
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
@@ -600,6 +652,16 @@
"enumValues": null,
"possibleTypes": null
},
{
"kind": "SCALAR",
"name": "Boolean",
"description": "The `Boolean` scalar type represents `true` or `false`.",
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null
},
{
"kind": "OBJECT",
"name": "__Schema",

+ 9383
- 3
backend/package-lock.json
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 16
- 2
backend/src/generated/graphql.ts Voir le fichier

@@ -72,6 +72,8 @@ export type Mutation = {
updatePizza: Pizza;
createTopping: Topping;
updateTopping: Topping;
deleteTopping: Topping;
deletePizza: Pizza;
};


@@ -96,6 +98,16 @@ export type MutationUpdateToppingArgs = {
updatedToppingDto: ChangeToppingDto;
};


export type MutationDeleteToppingArgs = {
toppingId: Scalars['ID'];
};


export type MutationDeletePizzaArgs = {
pizzaId: Scalars['ID'];
};

export type Subscription = {
__typename?: 'Subscription';
pizzasChanged: Array<Maybe<Pizza>>;
@@ -185,11 +197,11 @@ export type ResolversTypes = {
String: ResolverTypeWrapper<Scalars['String']>;
Topping: ResolverTypeWrapper<Topping>;
Query: ResolverTypeWrapper<{}>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
ChangePizzaDto: ChangePizzaDto;
ChangeToppingDto: ChangeToppingDto;
Mutation: ResolverTypeWrapper<{}>;
Subscription: ResolverTypeWrapper<{}>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
};

/** Mapping between all available schema types and the resolvers parents */
@@ -199,11 +211,11 @@ export type ResolversParentTypes = {
String: Scalars['String'];
Topping: Topping;
Query: {};
Boolean: Scalars['Boolean'];
ChangePizzaDto: ChangePizzaDto;
ChangeToppingDto: ChangeToppingDto;
Mutation: {};
Subscription: {};
Boolean: Scalars['Boolean'];
};

export type PizzaResolvers<ContextType = any, ParentType extends ResolversParentTypes['Pizza'] = ResolversParentTypes['Pizza']> = {
@@ -233,6 +245,8 @@ export type MutationResolvers<ContextType = any, ParentType extends ResolversPar
updatePizza?: Resolver<ResolversTypes['Pizza'], ParentType, ContextType, RequireFields<MutationUpdatePizzaArgs, 'pizzaId' | 'updatedPizzaDto'>>;
createTopping?: Resolver<ResolversTypes['Topping'], ParentType, ContextType, RequireFields<MutationCreateToppingArgs, never>>;
updateTopping?: Resolver<ResolversTypes['Topping'], ParentType, ContextType, RequireFields<MutationUpdateToppingArgs, 'toppingId' | 'updatedToppingDto'>>;
deleteTopping?: Resolver<ResolversTypes['Topping'], ParentType, ContextType, RequireFields<MutationDeleteToppingArgs, 'toppingId'>>;
deletePizza?: Resolver<ResolversTypes['Pizza'], ParentType, ContextType, RequireFields<MutationDeletePizzaArgs, 'pizzaId'>>;
};

export type SubscriptionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Subscription'] = ResolversParentTypes['Subscription']> = {

+ 21
- 15
backend/src/index.ts Voir le fichier

@@ -6,57 +6,63 @@ import { ToppingResolver } from "./resolver/topping-resolver";

const resolvers: Resolvers = {
Topping: {
id: (root, args, context) => {
id: (root, _args, _context) => {
return root.id
},
name: (root, args, context) => {
name: (root, _args, _context) => {
return root.name
},
},
Pizza: {
id: (root, args, context) => {
id: (root, _args, _context) => {
return root.id
},
name: (root, args, context) => {
name: (root, _args, _context) => {
return root.name
},
toppings: (root, args, context) => {
toppings: (root, _args, _context) => {
return root.toppings
},
},
Query: {
getPizzaById: (root, args, context) => {
getPizzaById: (_root, args, _context) => {
return PizzaResolver.getById(args.pizzaId);
},
getPizzaByName: (root, args, context) => {
getPizzaByName: (_root, args, _context) => {
return PizzaResolver.getByName(args.pizzaName);
},
listPizza: (root, args, context) => {
listPizza: (_root, _args, _context) => {
return PizzaResolver.list();
},
getToppingById: (root, args, context) => {
getToppingById: (_root, args, _context) => {
return ToppingResolver.getById(args.toppingId);
},
getToppingByName: (root, args, context) => {
getToppingByName: (_root, args, _context) => {
return ToppingResolver.getByName(args.toppingName);
},
listTopping: (root, args, context) => {
listTopping: (_root, _args, _context) => {
return ToppingResolver.list();
},
},
Mutation: {
createPizza: (root, args, context) => {
createPizza: (_root, args, _context) => {
return PizzaResolver.create(args.createPizzaDto as ChangePizzaDto);
},
updatePizza: (root, args, context) => {
updatePizza: (_root, args, _context) => {
return PizzaResolver.update(args.pizzaId, args.updatedPizzaDto as ChangePizzaDto);
},
createTopping: (root, args, context) => {
deletePizza: (_root, args, _context: any) => {
return PizzaResolver.delete(args.pizzaId);
},
createTopping: (_root, args, _context) => {
return ToppingResolver.create(args.createToppingDto as ChangeToppingDto);
},
updateTopping: (root, args, context) => {
updateTopping: (_root, args, _context) => {
return ToppingResolver.update(args.toppingId, args.updatedToppingDto as ChangeToppingDto);
},
deleteTopping: (_root, args, _context: any) => {
return ToppingResolver.delete(args.toppingId);
},
},
Subscription: {
pizzasChanged: {

+ 9
- 0
backend/src/resolver/pizza-resolver.ts Voir le fichier

@@ -15,6 +15,15 @@ export class PizzaResolver {
return PizzaList.filter(pizza => pizza.id === id)[0];
};

static delete = (id: string): Pizza => {
const index = PizzaList.indexOf(PizzaResolver.getById(id));
if ( index ) {
PizzaList.splice(index, 1)
}
return PizzaResolver.getById(id)
};


static list = (): Pizza[] => {
return PizzaList;
};

+ 8
- 0
backend/src/resolver/topping-resolver.ts Voir le fichier

@@ -24,6 +24,14 @@ export class ToppingResolver {
return ToppingList;
};

static delete = (id: string): Topping => {
const index = ToppingList.indexOf(ToppingResolver.getById(id));
if ( index ) {
ToppingList.splice(index, 1)
}
return ToppingResolver.getById(id)
};

static create = (toppingCreateDto: ChangeToppingDto): Topping => {
const topping: Topping = {
id: uuidv4(),

+ 2
- 0
backend/src/schema/schema.ts Voir le fichier

@@ -36,6 +36,8 @@ export const pizzaSchema = gql`
updatePizza(pizzaId: ID!, updatedPizzaDto: ChangePizzaDto!): Pizza!
createTopping(createToppingDto: ChangeToppingDto): Topping!
updateTopping(toppingId: ID!, updatedToppingDto: ChangeToppingDto!): Topping!
deleteTopping(toppingId: ID!): Topping!
deletePizza(pizzaId: ID!): Pizza!
}

type Subscription {

+ 12
- 0
frontend/src/generated/graphql.ts Voir le fichier

@@ -74,6 +74,8 @@ export type Mutation = {
updatePizza: Pizza;
createTopping: Topping;
updateTopping: Topping;
deleteTopping: Topping;
deletePizza: Pizza;
};


@@ -98,6 +100,16 @@ export type MutationUpdateToppingArgs = {
updatedToppingDto: ChangeToppingDto;
};


export type MutationDeleteToppingArgs = {
toppingId: Scalars['ID'];
};


export type MutationDeletePizzaArgs = {
pizzaId: Scalars['ID'];
};

export type Subscription = {
__typename?: 'Subscription';
pizzasChanged: Array<Maybe<Pizza>>;

Chargement…
Annuler
Enregistrer