mirror of
https://github.com/FranP-code/countries.git
synced 2025-10-13 00:02:15 +00:00
Change code to ID
This commit is contained in:
17
README.md
17
README.md
@@ -19,7 +19,6 @@ A public GraphQL API for information about countries, continents, and languages.
|
||||
3. Each `Country` has an array of `states` populated by their states/provinces, if any.
|
||||
|
||||
- [Writing queries](#writing-queries)
|
||||
- [Migration notes (pre-March 2020)](#migration-notes-pre-march-2020)
|
||||
- [Docs](#docs)
|
||||
- [Examples](#examples)
|
||||
- [License](#license)
|
||||
@@ -28,7 +27,7 @@ A public GraphQL API for information about countries, continents, and languages.
|
||||
|
||||
```graphql
|
||||
{
|
||||
country(code: BR) {
|
||||
country(code: "BR") {
|
||||
name
|
||||
native
|
||||
capital
|
||||
@@ -64,20 +63,6 @@ The above GraphQL query will produce the following JSON response:
|
||||
}
|
||||
```
|
||||
|
||||
### Migration notes (pre-March 2020)
|
||||
|
||||
In the first version of this API, `code` arguments were treated as `String`s. Now, they are enums of valid options only. To migrate, simply remove the double quotes from your existing code arguments:
|
||||
|
||||
```diff
|
||||
{
|
||||
- country(code: "CA") {
|
||||
+ country(code: CA) {
|
||||
name
|
||||
emoji
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
Check out [the playground](https://countries.trevorblades.com) to explore the schema and test out some queries.
|
||||
|
||||
55
index.js
55
index.js
@@ -3,26 +3,14 @@ const {ApolloServer, gql} = require('apollo-server');
|
||||
const {continents, countries, languages} = require('countries-list');
|
||||
|
||||
const typeDefs = gql`
|
||||
enum ContinentCode {
|
||||
${Object.keys(continents)}
|
||||
}
|
||||
|
||||
enum CountryCode {
|
||||
${Object.keys(countries)}
|
||||
}
|
||||
|
||||
enum LanguageCode {
|
||||
${Object.keys(languages)}
|
||||
}
|
||||
|
||||
type Continent {
|
||||
code: ContinentCode!
|
||||
code: ID!
|
||||
name: String!
|
||||
countries: [Country!]!
|
||||
}
|
||||
|
||||
type Country {
|
||||
code: CountryCode!
|
||||
code: ID!
|
||||
name: String!
|
||||
native: String!
|
||||
phone: String!
|
||||
@@ -42,7 +30,7 @@ const typeDefs = gql`
|
||||
}
|
||||
|
||||
type Language {
|
||||
code: LanguageCode!
|
||||
code: ID!
|
||||
name: String
|
||||
native: String
|
||||
rtl: Boolean!
|
||||
@@ -50,11 +38,11 @@ const typeDefs = gql`
|
||||
|
||||
type Query {
|
||||
continents: [Continent!]!
|
||||
continent(code: ContinentCode!): Continent!
|
||||
continent(code: ID!): Continent
|
||||
countries: [Country!]!
|
||||
country(code: CountryCode!): Country!
|
||||
country(code: ID!): Country
|
||||
languages: [Language!]!
|
||||
language(code: LanguageCode!): Language!
|
||||
language(code: ID!): Language
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -104,10 +92,13 @@ const resolvers = {
|
||||
},
|
||||
Query: {
|
||||
continent(parent, {code}) {
|
||||
return {
|
||||
code,
|
||||
name: continents[code]
|
||||
};
|
||||
const name = continents[code];
|
||||
return (
|
||||
name && {
|
||||
code,
|
||||
name
|
||||
}
|
||||
);
|
||||
},
|
||||
continents() {
|
||||
return Object.entries(continents).map(([code, name]) => ({
|
||||
@@ -117,10 +108,12 @@ const resolvers = {
|
||||
},
|
||||
country(parent, {code}) {
|
||||
const country = countries[code];
|
||||
return {
|
||||
...country,
|
||||
code
|
||||
};
|
||||
return (
|
||||
country && {
|
||||
...country,
|
||||
code
|
||||
}
|
||||
);
|
||||
},
|
||||
countries() {
|
||||
return Object.entries(countries).map(([code, country]) => ({
|
||||
@@ -130,10 +123,12 @@ const resolvers = {
|
||||
},
|
||||
language(parent, {code}) {
|
||||
const language = languages[code];
|
||||
return {
|
||||
...language,
|
||||
code
|
||||
};
|
||||
return (
|
||||
language && {
|
||||
...language,
|
||||
code
|
||||
}
|
||||
);
|
||||
},
|
||||
languages() {
|
||||
return Object.entries(languages).map(([code, language]) => ({
|
||||
|
||||
Reference in New Issue
Block a user