Browse Source

add delete

dev
Christian Ziermann 3 years ago
parent
commit
ca0fcc2bce
8 changed files with 9523 additions and 30 deletions
  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 View File

"enumValues": null, "enumValues": null,
"possibleTypes": 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", "kind": "INPUT_OBJECT",
"name": "ChangePizzaDto", "name": "ChangePizzaDto",
}, },
"isDeprecated": false, "isDeprecated": false,
"deprecationReason": null "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, "inputFields": null,
"enumValues": null, "enumValues": null,
"possibleTypes": 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", "kind": "OBJECT",
"name": "__Schema", "name": "__Schema",

+ 9383
- 3
backend/package-lock.json
File diff suppressed because it is too large
View File


+ 16
- 2
backend/src/generated/graphql.ts View File

updatePizza: Pizza; updatePizza: Pizza;
createTopping: Topping; createTopping: Topping;
updateTopping: Topping; updateTopping: Topping;
deleteTopping: Topping;
deletePizza: Pizza;
}; };




updatedToppingDto: ChangeToppingDto; updatedToppingDto: ChangeToppingDto;
}; };



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


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

export type Subscription = { export type Subscription = {
__typename?: 'Subscription'; __typename?: 'Subscription';
pizzasChanged: Array<Maybe<Pizza>>; pizzasChanged: Array<Maybe<Pizza>>;
String: ResolverTypeWrapper<Scalars['String']>; String: ResolverTypeWrapper<Scalars['String']>;
Topping: ResolverTypeWrapper<Topping>; Topping: ResolverTypeWrapper<Topping>;
Query: ResolverTypeWrapper<{}>; Query: ResolverTypeWrapper<{}>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
ChangePizzaDto: ChangePizzaDto; ChangePizzaDto: ChangePizzaDto;
ChangeToppingDto: ChangeToppingDto; ChangeToppingDto: ChangeToppingDto;
Mutation: ResolverTypeWrapper<{}>; Mutation: ResolverTypeWrapper<{}>;
Subscription: ResolverTypeWrapper<{}>; Subscription: ResolverTypeWrapper<{}>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
}; };


/** Mapping between all available schema types and the resolvers parents */ /** Mapping between all available schema types and the resolvers parents */
String: Scalars['String']; String: Scalars['String'];
Topping: Topping; Topping: Topping;
Query: {}; Query: {};
Boolean: Scalars['Boolean'];
ChangePizzaDto: ChangePizzaDto; ChangePizzaDto: ChangePizzaDto;
ChangeToppingDto: ChangeToppingDto; ChangeToppingDto: ChangeToppingDto;
Mutation: {}; Mutation: {};
Subscription: {}; Subscription: {};
Boolean: Scalars['Boolean'];
}; };


export type PizzaResolvers<ContextType = any, ParentType extends ResolversParentTypes['Pizza'] = ResolversParentTypes['Pizza']> = { export type PizzaResolvers<ContextType = any, ParentType extends ResolversParentTypes['Pizza'] = ResolversParentTypes['Pizza']> = {
updatePizza?: Resolver<ResolversTypes['Pizza'], ParentType, ContextType, RequireFields<MutationUpdatePizzaArgs, 'pizzaId' | 'updatedPizzaDto'>>; updatePizza?: Resolver<ResolversTypes['Pizza'], ParentType, ContextType, RequireFields<MutationUpdatePizzaArgs, 'pizzaId' | 'updatedPizzaDto'>>;
createTopping?: Resolver<ResolversTypes['Topping'], ParentType, ContextType, RequireFields<MutationCreateToppingArgs, never>>; createTopping?: Resolver<ResolversTypes['Topping'], ParentType, ContextType, RequireFields<MutationCreateToppingArgs, never>>;
updateTopping?: Resolver<ResolversTypes['Topping'], ParentType, ContextType, RequireFields<MutationUpdateToppingArgs, 'toppingId' | 'updatedToppingDto'>>; 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']> = { export type SubscriptionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Subscription'] = ResolversParentTypes['Subscription']> = {

+ 21
- 15
backend/src/index.ts View File



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

+ 9
- 0
backend/src/resolver/pizza-resolver.ts View File

return PizzaList.filter(pizza => pizza.id === id)[0]; 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[] => { static list = (): Pizza[] => {
return PizzaList; return PizzaList;
}; };

+ 8
- 0
backend/src/resolver/topping-resolver.ts View File

return ToppingList; 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 => { static create = (toppingCreateDto: ChangeToppingDto): Topping => {
const topping: Topping = { const topping: Topping = {
id: uuidv4(), id: uuidv4(),

+ 2
- 0
backend/src/schema/schema.ts View File

updatePizza(pizzaId: ID!, updatedPizzaDto: ChangePizzaDto!): Pizza! updatePizza(pizzaId: ID!, updatedPizzaDto: ChangePizzaDto!): Pizza!
createTopping(createToppingDto: ChangeToppingDto): Topping! createTopping(createToppingDto: ChangeToppingDto): Topping!
updateTopping(toppingId: ID!, updatedToppingDto: ChangeToppingDto!): Topping! updateTopping(toppingId: ID!, updatedToppingDto: ChangeToppingDto!): Topping!
deleteTopping(toppingId: ID!): Topping!
deletePizza(pizzaId: ID!): Pizza!
} }


type Subscription { type Subscription {

+ 12
- 0
frontend/src/generated/graphql.ts View File

updatePizza: Pizza; updatePizza: Pizza;
createTopping: Topping; createTopping: Topping;
updateTopping: Topping; updateTopping: Topping;
deleteTopping: Topping;
deletePizza: Pizza;
}; };




updatedToppingDto: ChangeToppingDto; updatedToppingDto: ChangeToppingDto;
}; };



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


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

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

Loading…
Cancel
Save