getQmessages method
Get a list of all queue messaged in a queue
'qName': Name of the queue is mandatory.
vtimeout: Optional. Specifies the new visibility timeout value, in seconds, relative to server time. The default value is 30 seconds.
A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry time.
numofmessages: Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, this API retrieves 20 messages from the queue with this operation.
Implementation
Future<List<AzureQMessage>> getQmessages({
required String qName,
int numOfmessages = 20,
int? visibilitytimeout,
int? timeout,
}) async {
String path = 'https://${config[accountName]}.queue.core.windows.net/$qName/messages?numofmessages=$numOfmessages';
if (visibilitytimeout != null) {
path += '&visibilitytimeout=$visibilitytimeout';
}
if (timeout != null) path += '&timeout=$timeout';
var request = http.Request('GET', Uri.parse(path));
_sign(request);
var res = await request.send();
var message = await res.stream.bytesToString();
if (res.statusCode >= 200 && res.statusCode < 300) {
List<AzureQMessage> tabList = _extractQMessages(message);
return tabList;
}
throw AzureStorageException(message, res.statusCode, res.headers);
}