Skip to content

Commit

Permalink
Renaming stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
olahallvall committed Apr 26, 2024
1 parent ae6f1dc commit a7ee7c7
Show file tree
Hide file tree
Showing 238 changed files with 7,474 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.DefinitionModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Binding
{
/// <summary>
/// A list of all bindings.
/// </summary>
public async Task<IEnumerable<Binding>> GetBindings()
{
return await DoGetCall<IEnumerable<Binding>>("api/bindings");
}

/// <summary>
/// A list of all bindings in a given virtual host.
/// </summary>
public async Task<IEnumerable<Binding>> GetBindingsByVhost(string virtualHost)
{
return await DoGetCall<IEnumerable<Binding>>($"api/bindings/{virtualHost.Encode()}");
}

/// <summary>
/// A list of all bindings on a given queue.
/// </summary>
public async Task<IEnumerable<Binding>> GetBindingsByVhostAndQueue(string virtualHost, string queueName)
{
return await DoGetCall<IEnumerable<Binding>>($"api/queues/{virtualHost.Encode()}/{queueName}/bindings");
}

/// <summary>
/// A list of all bindings in which a given exchange is the source or destination
/// </summary>
public async Task<IEnumerable<Binding>> GetBindingsByVhostAndExchange(
string virtualHost, string exchangeName, ExchangeBindingType exchangeBindingType)
{
string bindingType = exchangeBindingType.ToString("G").ToLower();
var path = $"api/exchanges/{virtualHost.Encode()}/{exchangeName.Encode()}/bindings/{bindingType}";
return await DoGetCall<IEnumerable<Binding>>(path);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.ChannelModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Channel
{
/// <summary>
/// List of all channels for a given connection.
/// </summary>
public async Task<IEnumerable<Channel>> GetChannelsByConnection(string connectionName)
{
return await DoGetCall<IEnumerable<Channel>>($"/api/connections/{connectionName.Encode()}/channels");
}

/// <summary>
/// A list of all open channels.
/// </summary>
public async Task<IEnumerable<Channel>> GetChannels()
{
return await DoGetCall<IEnumerable<Channel>>("/api/channels");
}

/// <summary>
/// A list of all open channels in a specific vhost.
/// </summary>
public async Task<IEnumerable<Channel>> GetChannelsByVhost(string virtualHost)
{
return await DoGetCall<IEnumerable<Channel>>($"/api/vhosts/{virtualHost.Encode()}/channels");
}

/// <summary>
/// Details about an individual channel by name
/// </summary>
public async Task<Channel> GetChannel(string channelName)
{
return await DoGetCall<Channel>($"/api/channels/{channelName.Encode()}");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.ConnectionModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Connection
{
/// <summary>
/// A list of all open connections.
/// </summary>
public async Task<IEnumerable<Connection>> GetConnections()
{
return await DoGetCall<IEnumerable<Connection>>("/api/connections");
}

/// <summary>
/// A list of all open connections in a specific vhost.
/// </summary>
public async Task<IEnumerable<Connection>> GetConnectionsByVhost(string virtualHost)
{
return await DoGetCall<IEnumerable<Connection>>($"/api/vhosts/{virtualHost.Encode()}/connections");
}

/// <summary>
/// An individual connection by connection name
/// </summary>
public async Task<Connection> GetConnection(string connectionName)
{
return await DoGetCall<Connection>($"/api/connections/{connectionName.Encode()}");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.ConsumerModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Consumer
{
/// <summary>
/// A list of all consumers.
/// </summary>
public async Task<IEnumerable<Consumer>> GetConsumers()
{
return await DoGetCall<IEnumerable<Consumer>>("api/consumers");
}

/// <summary>
/// A list of all consumers in a given virtual host.
/// </summary>
public async Task<IEnumerable<Consumer>> GetConsumersByVhost(string virtualHost)
{
return await DoGetCall<IEnumerable<Consumer>>($"api/consumers/{virtualHost.Encode()}");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.DefinitionModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Definition
{
/// <summary>
/// The server definitions - exchanges, queues, bindings, users, virtual hosts, permissions and parameters. Everything apart from messages.
/// </summary>
public async Task<SystemDefinition> GetDefinitions()
{
return await DoGetCall<SystemDefinition>("/api/definitions");
}

/// <summary>
/// The server definitions for a given virtual host - exchanges, queues, bindings and policies.
/// </summary>
public async Task<VhostDefinition> GetDefinitionByVhost(string virtualHost)
{
return await DoGetCall<VhostDefinition>($"/api/definitions/{virtualHost.Encode()}");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.ExchangeModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.ExchangeModel.PublishMessageModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;
using Newtonsoft.Json;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Exchange
{
/// <summary>
/// A list of all exchanges.
/// </summary>
public async Task<IEnumerable<Exchange>> GetExchanges()
{
return await DoGetCall<IEnumerable<Exchange>>("api/exchanges");
}

/// <summary>
/// A list of all exchanges in a given virtual host.
/// </summary>
public async Task<IEnumerable<Exchange>> GetExchangesByVhost(string virtualHost)
{
return await DoGetCall<IEnumerable<Exchange>>($"api/exchanges/{virtualHost.Encode()}");
}

/// <summary>
/// An individual exchange by virtual host and exchange name
/// </summary>
public async Task<Exchange> GetExchangeByVhostAndName(string virtualHost, string exchangeName)
{
return await DoGetCall<Exchange>($"api/exchanges/{virtualHost.Encode()}/{exchangeName.Encode()}");
}

/// <summary>
/// Publish a message to a given exchange.
/// </summary>
/// <param name="virtualHost"></param>
/// <param name="exchangeName"></param>
/// <param name="routingKey">binding key</param>
/// <param name="payload">message data</param>
/// <param name="payloadEncoding">The payload_encoding key should be either "string" (in which case the payload will be taken to be the UTF-8 encoding of the payload field) or "base64" (in which case the payload field is taken to be base64 encoded).</param>
/// <param name="properties"></param>
/// <returns>true if the message was sent to at least one queue.</returns>
public async Task<bool> PublishMessage(
string virtualHost, string exchangeName, string routingKey, dynamic payload,
PayloadEncoding payloadEncoding = PayloadEncoding.String, Properties properties = null)
{
if (exchangeName == String.Empty)
throw new ArgumentException("Cannot send message using default exchange in HTTP API");

var request = new PublishMessageRequest
{
payload = JsonConvert.SerializeObject(payload),
routing_key = routingKey,
properties = new Properties(),
payload_encoding = payloadEncoding.ToString("G").ToLower()
};

string path = $"/api/exchanges/{virtualHost.Encode()}/{exchangeName.Encode()}/publish";
var response = await DoCall<PublishMessageResponse>(path, HttpMethod.Post, request);

return response.Routed;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.NodeModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Node
{
/// <summary>
/// A list of nodes in the RabbitMQ cluster.
/// </summary>
public async Task<IEnumerable<Node>> GetNodes()
{
return await DoGetCall<IEnumerable<Node>>("/api/nodes");
}

/// <summary>
/// An individual node in the RabbitMQ cluster
/// </summary>
/// <param name="nodeName">node name</param>
/// <param name="withMemory">To get memory statistics</param>
/// <param name="withBinary">to get a breakdown of binary memory use (may be expensive if there are many small binaries in the system)</param>
/// <returns>Node details</returns>
public async Task<Node> GetNode(string nodeName, bool withMemory = false, bool withBinary = false)
{
string memory = withMemory.ToString().ToLowerInvariant();
string binary = withBinary.ToString().ToLowerInvariant();
var path = $"/api/nodes/{nodeName.Encode()}?memory={memory}&binary={binary}";
return await DoGetCall<Node>(path);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.DefinitionModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Permission
{
/// <summary>
/// A list of all permissions for all users.
/// </summary>
public async Task<IEnumerable<Permission>> GetPermissions()
{
return await DoGetCall<IEnumerable<Permission>>("/api/permissions");
}

/// <summary>
/// An individual permission of a user and virtual host.
/// </summary>
public async Task<Permission> GetPermissionByVhostAndUser(string virtualHost, string username)
{
return await DoGetCall<Permission>($"/api/permissions/{virtualHost.Encode()}/{username.Encode()}");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.ExchangeModel.PublishMessageModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Models.QueueModel;
using FlowDance.AzureFunctions.RabbitMqHttpApiClient.Utils;

namespace FlowDance.AzureFunctions.RabbitMqHttpApiClient.API
{
public partial class RabbitMqApi//.Queue
{
/// <summary>
/// A list of all queues.
/// </summary>
public async Task<IEnumerable<Queue>> GetQueues()
{
return await DoGetCall<IEnumerable<Queue>>("/api/queues");
}

/// <summary>
/// A list of all queues in a given virtual host.
/// </summary>
public async Task<IEnumerable<Queue>> GetQueuesByVhost(string virtualHost)
{
return await DoGetCall<IEnumerable<Queue>>($"/api/queues/{virtualHost.Encode()}");
}

/// <summary>
/// An individual queue by virtual host and queue name.
/// </summary>
public async Task<Queue> GetQueueByVhostAndName(string virtualHost, string queueName)
{
return await DoGetCall<Queue>($"/api/queues/{virtualHost.Encode()}/{queueName.Encode()}");
}

/// <summary>
/// Get messages from a queue. (This is not an HTTP GET as it will alter the state of the queue.)
/// </summary>
/// <param name="virtualHost"></param>
/// <param name="queueName"></param>
/// <param name="count">ols the maximum number of messages to get. You may get fewer messages than this if the queue cannot immediately provide them.</param>
/// <param name="requeue">determines whether the messages will be removed from the queue. If requeue is true they will be requeued - but their redelivered flag will be set.</param>
/// <param name="encoding">must be either "auto" (in which case the payload will be returned as a string if it is valid UTF-8, and base64 encoded otherwise), or "base64" (in which case the payload will always be base64 encoded).</param>
/// <returns></returns>
public async Task<IEnumerable<QueueMessage>> GetQueueMessages(string virtualHost, string queueName,
long count = Int64.MaxValue, bool requeue = true, PayloadEncoding encoding = PayloadEncoding.Auto)
{
var request = new GetQueueMessagesRequest
{
count = count,
requeue = requeue,
encoding = encoding.ToString("G").ToLower(),
};

string path = $"/api/queues/{virtualHost.Encode()}/{queueName.Encode()}/get";
return await DoCall<IEnumerable<QueueMessage>>(path, HttpMethod.Post, request);
}

/// <summary>
/// Purge (delete all messages) of a given queue
/// </summary>
/// <returns>true if all messages is deleted</returns>
public async Task<bool> DeleteAllQueueMessages(string virtualHost, string queueName)
{
string path = $"/api/queues/{virtualHost.Encode()}/{queueName.Encode()}/contents";
return await DoDeleteCall(path);
}
}
}
Loading

0 comments on commit a7ee7c7

Please sign in to comment.