getTags method
Returns all tags of a doctype.
Optionally specify filters using likeTag
which can be used in the form of SQL's LIKE statements.
Returns failure if the doctype.
Implementation
@override
Future<RequestResponse<List<String?>?>> getTags(
{required String doctype, String? likeTag}) async {
if (config.coreInstance.frappe.frappeVersion!.major! < 12) {
final response = await Request.initiateRequest(
url: config.hostUrl,
method: HttpMethod.POST,
contentType: ContentTypeLiterals.APPLICATION_JSON,
data: <String, dynamic>{
'cmd': 'frappe.desk.tags.get_tags',
'doctype': doctype,
'txt': likeTag ?? '',
'cat_tags': jsonEncode(<dynamic>[])
});
if (response.isSuccess) {
List result = response.data!.message;
return RequestResponse.success(List<String>.from(result),
rawResponse: response.rawResponse);
} else {
return RequestResponse.fail(handleError('get_tags', response.error));
}
} else {
final response = await getList(TagLink(), filters: [
['document_type', 'LIKE', doctype],
['tag', 'LIKE', '%${likeTag ?? ''}%']
], fields: [
'tag'
]);
if (response.isSuccess) {
final tags = response.data?.map((_tag) => _tag?.tag).toList();
return RequestResponse.success(tags, rawResponse: response.rawResponse);
}
return RequestResponse.fail(handleError('get_tag', response.error));
}
}