public async Task RemoveMembers(IEnumerable <string> userIDs, MessageInput msg = null) { var payload = new JObject(new JProperty("remove_members", userIDs)); if (msg != null) { if (msg.User != null) { msg.User = new User() { ID = msg.User.ID }; } payload.Add("message", msg.ToJObject()); } var request = this._client.BuildAppRequest(this.Endpoint, HttpMethod.POST); request.SetJsonBody(JsonConvert.SerializeObject(payload)); var response = await this._client.MakeRequest(request); if (response.StatusCode != System.Net.HttpStatusCode.Created) { throw StreamChatException.FromResponse(response); } }
internal static MessageInput FromJObject(JObject jObj) { var result = new MessageInput(); result._data = JsonHelpers.FromJObject(result, jObj); var userObj = result._data.GetData <JObject>("user"); if (userObj != null) { result.User = User.FromJObject(userObj); result._data.RemoveData("user"); } var attachs = result._data.GetData <JArray>("attachments"); if (attachs != null) { var attachments = new List <Attachment>(); foreach (var att in attachs) { var attachObj = att as JObject; attachments.Add(Attachment.FromJObject(attachObj)); } result.Attachments = attachments; result._data.RemoveData("attachments"); } return(result); }
public async Task <Message> SendMessage(MessageInput msg, string userID) { if (msg.User == null) { msg.User = new User(); } msg.User.ID = userID; var payload = new JObject(new JProperty("message", msg.ToJObject())); var request = this._client.BuildAppRequest(this.Endpoint + "/message", HttpMethod.POST); request.SetJsonBody(payload.ToString()); var response = await this._client.MakeRequest(request); if (response.StatusCode == System.Net.HttpStatusCode.Created) { var respObj = JObject.Parse(response.Content); var msgObj = respObj.Property("message").Value as JObject; return(Message.FromJObject(msgObj)); } throw StreamChatException.FromResponse(response); }
public async Task <UpdateChannelResponse> Update(GenericData customData, MessageInput msg = null, bool skipPush = false) { var payload = new JObject(); payload.Add(new JProperty("data", customData.ToJObject())); if (msg != null) { payload.Add(new JProperty("message", msg.ToJObject())); if (skipPush) { payload.Add("skip_push", true); } } var request = this._client.BuildAppRequest(this.Endpoint, HttpMethod.POST); request.SetJsonBody(payload.ToString()); var response = await this._client.MakeRequest(request); if (response.StatusCode == System.Net.HttpStatusCode.Created) { this._data = customData; var respObj = JObject.Parse(response.Content); return(UpdateChannelResponse.FromJObject(respObj)); } throw StreamChatException.FromResponse(response); }
public async Task<Message> UpdateMessage(MessageInput msg) { if (string.IsNullOrEmpty(msg.ID)) throw new ArgumentException("message.id must be set"); var payload = new JObject(new JProperty("message", msg.ToJObject())); var endpoint = string.Format("messages/{0}", msg.ID); var request = this.BuildAppRequest(endpoint, HttpMethod.POST); request.SetJsonBody(payload.ToString()); var response = await this.MakeRequest(request); if (response.StatusCode == System.Net.HttpStatusCode.Created) { var respObj = JObject.Parse(response.Content); var msgObj = respObj.Property("message").Value as JObject; return Message.FromJObject(msgObj); } throw StreamChatException.FromResponse(response); }
public async Task <Message> SendMessage(MessageInput msg, string userID, string parentID) { msg.ParentID = parentID; return(await this.SendMessage(msg, userID)); }
public async Task <Message> SendMessage(MessageInput msg, string userID, string parentID, bool skipPush = false) { msg.ParentID = parentID; return(await this.SendMessage(msg, userID, skipPush)); }