コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 public async Task <Message> SendMessage(MessageInput msg, string userID, string parentID)
 {
     msg.ParentID = parentID;
     return(await this.SendMessage(msg, userID));
 }
コード例 #7
0
 public async Task <Message> SendMessage(MessageInput msg, string userID, string parentID, bool skipPush = false)
 {
     msg.ParentID = parentID;
     return(await this.SendMessage(msg, userID, skipPush));
 }