getOrgData method
Retrieves the org details for the given org id
Implementation
@override
Future<Org> getOrgData(String orgId) async {
final operation = _amplifyApi.query<String>(
request: GraphQLRequest(
document: '''
query GetOrg(\$orgID: ID!) {
getOrg(orgID: \$orgID) {
org {
orgID
orgName
businessRef
publicKey
certificate
verified
config
owner {
userID
userName
firstName
middleName
familyName
}
admins {
userID
userName
firstName
middleName
familyName
}
contacts {
type
description
emailAddress
phoneNumber
}
addresses {
type
description
number
street
other
municipality
county
province
postalCode
countryCode
}
quotas {
quotaName
description
period
softLimit
limit
used
}
users {
orgUsers {
user {
userID
userName
firstName
middleName
familyName
emailAddress
}
isOwner
isAdmin
status
}
}
}
}
}
''',
variables: {
'orgID': orgId,
},
),
);
final response = await operation.response.onError((e, stackTrace) {
_logger.severe(
'Exception when invoking service call to '
'read org data for org with id "$orgId": $e',
);
throw OrgServiceError(
message: 'Failed to retrieve org data for org with id: $orgId',
innerException: e is Exception ? e : Exception(e),
innerStackTrace: stackTrace,
);
});
if (response.hasErrors) {
final errorPayload = jsonEncode(response.errors);
_logger.severe('Failed to retrieve org: $errorPayload');
if (response.errors.any(
(error) => error.message.contains(
'Given org was not found',
),
)) {
throw OrgDoesNotExistError(orgId: orgId);
} else {
throw OrgDataReadError(orgId: orgId);
}
}
final data = response.data;
return Org.fromJson(jsonDecode(data!)['getOrg']['org']);
}