createPractitionerPatientRequest method Null safety

Future<PractitionerPatientRequest?> createPractitionerPatientRequest(
  1. {required PlanDefinition planDefinition,
  2. required Organization organization}
)

Implementation

Future<PractitionerPatientRequest?> createPractitionerPatientRequest({
  required final PlanDefinition planDefinition,
  required final Organization organization,
}) async {
  final gqlQueryString = '''
    mutation CreateToken {
      createPractitionerPatientRequest(
        input: {
          data: {
            planDefinition: ${planDefinition.id}
            organization: ${organization.id}
          }
        }
      ) {
        practitionerPatientRequest {
          ${PractitionerPatientRequestGqlEntity.gqlQueryFragment}
        }
      }
    }
    ''';

  try {
    final queryResult = await graphQLClient.mutate<void>(
      MutationOptions(
        document: gql(gqlQueryString),
      ),
    );

    if (queryResult.hasException) {
      logger?.e(queryResult.exception.toString());
      return null;
    }

    final data = queryResult.data!["createPractitionerPatientRequest"]
        ["practitionerPatientRequest"];

    return PractitionerPatientRequestGqlEntity.fromJson(data)
        ?.toPractitionerPatientRequest();
  } catch (e, stackTrace) {
    logger?.e('Could not create practitioner patient request', e, stackTrace);
    return null;
  }
}