@@ -1935,33 +1935,41 @@ extension IMConversation {
19351935 assert ( client. specificAssertion)
19361936 switch result {
19371937 case . success( value: let token) :
1938- let header : [ String : String ] = [
1939- " X-LC-IM-Session-Token " : token,
1940- ]
1941- let parameters : [ String : Any ] = [
1942- " client_id " : client. ID,
1943- " cid " : self . ID,
1944- ]
1945- _ = client. application. httpClient. request (
1946- . get, " classes/_ConversationMemberInfo " ,
1947- parameters: parameters,
1948- headers: header)
1949- { ( response) in
1950- if let error = LCError ( response: response) {
1951- completion ( client, . failure( error: error) )
1952- } else if let results = response. results as? [ [ String : Any ] ] {
1953- let creator = self . creator
1954- var table : [ String : MemberInfo ] = [ : ]
1955- for rawData in results {
1956- if let info = MemberInfo ( rawData: rawData, creator: creator) {
1957- table [ info. ID] = info
1938+ do {
1939+ guard let whereString = try [ " cid " : self . ID] . jsonString ( ) else {
1940+ completion ( client, . failure( error: LCError ( code: . malformedData) ) )
1941+ return
1942+ }
1943+ let header : [ String : String ] = [
1944+ " X-LC-IM-Session-Token " : token,
1945+ ]
1946+ let parameters : [ String : Any ] = [
1947+ " client_id " : client. ID,
1948+ " where " : whereString,
1949+ ]
1950+ _ = client. application. httpClient. request (
1951+ . get, " classes/_ConversationMemberInfo " ,
1952+ parameters: parameters,
1953+ headers: header)
1954+ { ( response) in
1955+ if let error = LCError ( response: response) {
1956+ completion ( client, . failure( error: error) )
1957+ } else if let results = response. results as? [ [ String : Any ] ] {
1958+ let creator = self . creator
1959+ var table : [ String : MemberInfo ] = [ : ]
1960+ for rawData in results {
1961+ if let info = MemberInfo ( rawData: rawData, creator: creator) {
1962+ table [ info. ID] = info
1963+ }
19581964 }
1965+ self . sync ( self . _memberInfoTable = table)
1966+ completion ( client, . success)
1967+ } else {
1968+ completion ( client, . failure( error: LCError ( code: . malformedData) ) )
19591969 }
1960- self . sync ( self . _memberInfoTable = table)
1961- completion ( client, . success)
1962- } else {
1963- completion ( client, . failure( error: LCError ( code: . malformedData) ) )
19641970 }
1971+ } catch {
1972+ completion ( client, . failure( error: LCError ( error: error) ) )
19651973 }
19661974 case . failure( error: let error) :
19671975 completion ( client, . failure( error: error) )
0 commit comments