Skip to content

Commit db6eac5

Browse files
committed
added fragment
1 parent ff05794 commit db6eac5

File tree

4 files changed

+50
-55
lines changed

4 files changed

+50
-55
lines changed

api/src/resolvers/resolvers.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const resolvers: {
1111
} = {
1212
Query: {
1313
// TODO: what possible resolvers exist?
14-
hello: () => 'world',
14+
hello: () => 'hello',
1515

1616
nowPlaying(_parent, _args, context, _info) {
1717
return context.dataSources.movieDataSource.nowPlaying();

app/src/components/slider/MoviePoster.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import React, { useContext } from 'react';
22
import cx from 'classnames';
33
import { CarouselContext } from './CarouselContext';
4+
import { MovieFragmentFragment } from '../../generated/graphql';
45

56
import './MoviePoster.scss';
67
import FavoriteIcon from '@material-ui/icons/Favorite';
78

89
type MoviePosterProps = {
9-
movie: any; // TODO: use the fragment type
10+
movie: MovieFragmentFragment; // TODO: use the fragment type
1011
};
1112

1213
export function MoviePoster(props: MoviePosterProps) {

app/src/generated/graphql.tsx

+29-33
Original file line numberDiff line numberDiff line change
@@ -99,18 +99,23 @@ export type ToggleFavoriteMutation = (
9999
)> }
100100
);
101101

102+
export type MovieFragmentFragment = (
103+
{ __typename?: 'Movie' }
104+
& Pick<Movie, 'id' | 'title' | 'overview' | 'poster_path' | 'backdrop_path' | 'favorite' | 'popularity'>
105+
& { cast?: Maybe<Array<(
106+
{ __typename?: 'Credit' }
107+
& Pick<Credit, 'name'>
108+
)>> }
109+
);
110+
102111
export type NowPlayingQueryVariables = Exact<{ [key: string]: never; }>;
103112

104113

105114
export type NowPlayingQuery = (
106115
{ __typename?: 'Query' }
107116
& { nowPlaying?: Maybe<Array<(
108117
{ __typename?: 'Movie' }
109-
& Pick<Movie, 'id' | 'title' | 'overview' | 'poster_path' | 'backdrop_path' | 'favorite' | 'popularity'>
110-
& { cast?: Maybe<Array<(
111-
{ __typename?: 'Credit' }
112-
& Pick<Credit, 'name'>
113-
)>> }
118+
& MovieFragmentFragment
114119
)>> }
115120
);
116121

@@ -121,15 +126,24 @@ export type PopularQuery = (
121126
{ __typename?: 'Query' }
122127
& { popular?: Maybe<Array<(
123128
{ __typename?: 'Movie' }
124-
& Pick<Movie, 'id' | 'title' | 'overview' | 'poster_path' | 'backdrop_path' | 'favorite' | 'popularity'>
125-
& { cast?: Maybe<Array<(
126-
{ __typename?: 'Credit' }
127-
& Pick<Credit, 'name'>
128-
)>> }
129+
& MovieFragmentFragment
129130
)>> }
130131
);
131132

132-
133+
export const MovieFragmentFragmentDoc = gql`
134+
fragment MovieFragment on Movie {
135+
id
136+
title
137+
overview
138+
poster_path
139+
backdrop_path
140+
favorite
141+
popularity
142+
cast {
143+
name
144+
}
145+
}
146+
`;
133147
export const MovieByIdDocument = gql`
134148
query movieById($id: ID!) {
135149
movieById(id: $id) {
@@ -211,19 +225,10 @@ export type ToggleFavoriteMutationOptions = Apollo.BaseMutationOptions<ToggleFav
211225
export const NowPlayingDocument = gql`
212226
query nowPlaying {
213227
nowPlaying {
214-
id
215-
title
216-
overview
217-
poster_path
218-
backdrop_path
219-
favorite
220-
popularity
221-
cast {
222-
name
223-
}
228+
...MovieFragment
224229
}
225230
}
226-
`;
231+
${MovieFragmentFragmentDoc}`;
227232

228233
/**
229234
* __useNowPlayingQuery__
@@ -254,19 +259,10 @@ export type NowPlayingQueryResult = Apollo.QueryResult<NowPlayingQuery, NowPlayi
254259
export const PopularDocument = gql`
255260
query popular {
256261
popular {
257-
id
258-
title
259-
overview
260-
poster_path
261-
backdrop_path
262-
favorite
263-
popularity
264-
cast {
265-
name
266-
}
262+
...MovieFragment
267263
}
268264
}
269-
`;
265+
${MovieFragmentFragmentDoc}`;
270266

271267
/**
272268
* __usePopularQuery__

app/src/pages/graphql.ts

+18-20
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,35 @@
11
import { gql } from '@apollo/client';
22

33
// TODO: create fragment for movie object
4+
export const MOVIE_FRAGMENT = gql`
5+
fragment MovieFragment on Movie {
6+
id
7+
title
8+
overview
9+
poster_path
10+
backdrop_path
11+
favorite
12+
popularity
13+
cast {
14+
name
15+
}
16+
}
17+
`;
418

519
export const NOW_PLAYING = gql`
620
query nowPlaying {
721
nowPlaying {
8-
id
9-
title
10-
overview
11-
poster_path
12-
backdrop_path
13-
favorite
14-
popularity
15-
cast {
16-
name
17-
}
22+
...MovieFragment
1823
}
1924
}
25+
${MOVIE_FRAGMENT}
2026
`;
2127

2228
export const POPULAR = gql`
2329
query popular {
2430
popular {
25-
id
26-
title
27-
overview
28-
poster_path
29-
backdrop_path
30-
favorite
31-
popularity
32-
cast {
33-
name
34-
}
31+
...MovieFragment
3532
}
3633
}
34+
${MOVIE_FRAGMENT}
3735
`;

0 commit comments

Comments
 (0)