public async Task <GhasedakSendResponse> SendAsync(GhasedakOutgoingMessageRequest message, GhasedakOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (string.IsNullOrWhiteSpace(options.PrivateKey)) { throw new ArgumentNullException(nameof(options.PrivateKey)); } var serializer = new JsonSerializer <GhasedakSendResponse>(); var inlineMessage = message.MapToInlineGhasedakOutgoingMessageRequest(); inlineMessage.SignWith(options.PrivateKey); var content = inlineMessage.CreateContent(); var httpResponse = await _httpClient.PostAsync("/api/v5.0/message/post", content); await CheckSuccessStatusCodeAndThrowIfUnsuccessful(httpResponse); var ghasedakResponseString = await httpResponse.Content.ReadAsStringAsync(); var ghasedakResponse = serializer.DeserializeFromString(ghasedakResponseString); return(ghasedakResponse); }
internal static InlineGhasedakOutgoingMessageRequest MapToInlineGhasedakOutgoingMessageRequest( this GhasedakOutgoingMessageRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } return(new InlineGhasedakOutgoingMessageRequest { Date = request.Date.ToGhasedakFormatDateString(), Uid = request.Uid, Messages = request.Messages.ToInlineGhasedakContentMessage(), }); }
public async Task <GhasedakSendResponse> SendAsync(GhasedakOutgoingMessageRequest message, string privateKey) { return(await SendAsync(message, new GhasedakOptions { PrivateKey = privateKey })); }