getQmessages method

Future<List<AzureQMessage>> getQmessages({
  1. required String qName,
  2. int numOfmessages = 20,
  3. int? visibilitytimeout,
  4. int? timeout,
})

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);
}