graphql-composition 0.12.2

An implementation of GraphQL federated schema composition
Documentation
---
source: crates/graphql-composition/tests/composition_tests.rs
expression: "A test with three extensions, used in different subgraphs with different imports. We expect to see the `extension__Link` enum and `extension__directive` instances in the right places.\n\nAlso note we have a facebook linked schema, that should not appear in the federated graph."
input_file: crates/graphql-composition/tests/composition/grafbase_extensions/extensions_basic/test.md
---
enum AppointmentStatus {
  SCHEDULED
  COMPLETED
  CANCELLED
}

enum DoctorType {
  CARDIOLOGIST
  PEDIATRICIAN
  SURGEON
}

type Appointment {
  datetime: String!
  doctor: Doctor!
  id: ID!
  notes: String
  patient: Patient!
  status: AppointmentStatus!
}

type Patient {
  appointments: [Appointment!]!
  dateOfBirth: String!
  email: String!
  firstName: String!
  id: ID!
  lastName: String!
  phone: String
}

type Doctor {
  appointments: [Appointment!]!
  email: String!
  firstName: String!
  id: ID!
  lastName: String!
  phone: String
  specialty: String!
  type: DoctorType
}

type Query {
  appointment(id: ID!): Appointment
  appointments: [Appointment!]!
  doctor(id: ID!): Doctor
  doctors: [Doctor!]!
  patient(id: ID!): Patient
  patients: [Patient!]!
}

type Mutation {
  cancelAppointment(id: ID!): Boolean!
  createDoctor(input: DoctorInput!): Doctor!
  createPatient(input: PatientInput!): Patient!
  scheduleAppointment(input: AppointmentInput!): Appointment!
  updateDoctor(id: ID!, input: DoctorInput!): Doctor!
  updatePatient(id: ID!, input: PatientInput!): Patient!
}

type Subscription {
  newAppointments(doctorId: ID!): Appointment!
}

input AppointmentInput {
  doctorId: ID!
  datetime: String!
  notes: String
  patientId: ID!
}

input DoctorInput {
  firstName: String!
  lastName: String!
  specialty: String!
  email: String!
  phone: String
}

input PatientInput {
  firstName: String!
  lastName: String!
  email: String!
  phone: String
  dateOfBirth: String!
}