Skip to content
Snippets Groups Projects
Commit 95069365 authored by Larbi Gharib's avatar Larbi Gharib
Browse files

Added conversationId to contact

Change-Id: I615f8d4865c362b6aa96af3398193abac28ef631
parent e9b9182b
No related branches found
No related tags found
No related merge requests found
......@@ -67,8 +67,8 @@ public class ContactDao extends AbstractDao<Contact> {
PreparedStatement ps = connection.getConnection().prepareStatement(delete);
ps.setString(1, contactList.get(0).getOwner());
ps.executeUpdate();
String insert = "INSERT INTO contacts (owner, uri, displayName, timestamp, status,banned,confirmed) VALUES " +
"(?, ?, ?, ?, ?,?,?)";
String insert = "INSERT INTO contacts (owner, uri, displayName, timestamp, status, banned, confirmed, conversationId) VALUES " +
"(?, ?, ?, ?, ?, ?, ?, ?)";
for (Contact contact : contactList) {
ps = connection.getConnection().prepareStatement(insert);
contact.getInsert(ps);
......
ALTER TABLE contacts ADD COLUMN conversationId varchar(255);
\ No newline at end of file
......@@ -47,6 +47,7 @@ public class Contact implements DatabaseObject {
private Character status; //A = added, D = deleted.
private Boolean banned = false;
private Boolean confirmed = false;
private String conversationId;
public Contact(ResultSet rs) throws Exception {
this.owner = rs.getString("owner");
......@@ -56,6 +57,7 @@ public class Contact implements DatabaseObject {
this.status = (char) rs.getInt("status");
this.banned = rs.getBoolean("banned");
this.confirmed = rs.getBoolean("confirmed");
this.conversationId = rs.getString("conversationId");
}
@Override
......@@ -68,6 +70,7 @@ public class Contact implements DatabaseObject {
ps.setInt(5,status);
ps.setBoolean(6,banned);
ps.setBoolean(7,confirmed);
ps.setString(8, conversationId);
return ps;
}
......
......@@ -16,7 +16,8 @@ public class ContactCodec implements Encoder, Decoder {
* "added" : 1595523510,
* "banned" : false,
* "uri" : "520290d7f45e5811fe5af637d328e7fbf5e8cab9",
* "removed" : 0
* "removed" : 0,
* "conversationId": 6a61013979964f70c8fb9183a8b238d58a1846ed
* }
*/
@Override
......@@ -24,6 +25,7 @@ public class ContactCodec implements Encoder, Decoder {
Any input = jsonIterator.readAny();
Contact contact = new Contact();
contact.setUri(input.get("uri").toString());
contact.setConversationId(input.get("conversationId").toString());
long timeAdded = 0L;
long timeRemoved = 0L;
if(!input.get("added").toString().isBlank())
......@@ -49,6 +51,7 @@ public class ContactCodec implements Encoder, Decoder {
Contact ct = (Contact) o;
StringBuilder sb = new StringBuilder();
sb.append("{\"uri\":\"").append(ct.getUri()).append("\",");
sb.append("\"conversationId\":").append(ct.getConversationId()).append(",");
switch (ct.getStatus()){
case 'A':
sb.append("\"added\":").append(ct.getTimestamp());
......
......@@ -22,8 +22,8 @@ class ContactTest {
@Test
public void deserialize(){
String str = "[{\"uri\":\"tcp://def@local\",\"added\":1594742298377,\"banned\":false,\"confirmed\":true}," +
"{\"uri\":\"tcp://abc@19293.com\",\"removed\":1594742298377,\"banned\":true,\"confirmed\":true}]";
String str = "[{\"uri\":\"tcp://def@local\",\"added\":1594742298377,\"banned\":false,\"confirmed\":true,\"confirmed\":6a61013979964f70c8fb9183a8b238d58a1846ed}," +
"{\"uri\":\"tcp://abc@19293.com\",\"removed\":1594742298377,\"banned\":true,\"confirmed\":true,\"confirmed\":2b61024119964f70c8fb9183a8b238d58a1846ed}]";
Contact[] contacts = JsonIterator.deserialize(str,Contact[].class);
Assertions.assertEquals(2,contacts.length);
}
......@@ -35,6 +35,7 @@ class ContactTest {
contact1.setStatus('A');
contact1.setTimestamp(System.currentTimeMillis());
contact1.setUri("tcp://def@local");
contact1.setConversationId("6a61013979964f70c8fb9183a8b238d58a1846ed");
contact1.setBanned(false);
contact1.setConfirmed(false);
Contact contact2 = new Contact();
......@@ -42,6 +43,7 @@ class ContactTest {
contact2.setStatus('D');
contact2.setTimestamp(System.currentTimeMillis());
contact2.setUri("tcp://abc@19293.com");
contact2.setConversationId("2b61024119964f70c8fb9183a8b238d58a1846ed");
contact2.setBanned(true);
contact2.setConfirmed(true);
ArrayList<Contact> lst = new ArrayList<>();
......@@ -58,6 +60,7 @@ class ContactTest {
contact1.setStatus('A');
contact1.setTimestamp(System.currentTimeMillis());
contact1.setUri("tcp://def@local");
contact1.setConversationId("6a61013979964f70c8fb9183a8b238d58a1846ed");
Contact contact2 = new Contact();
contact2.setOwner("fsidokhine");
contact2.setStatus('D');
......@@ -71,6 +74,7 @@ class ContactTest {
contact3.setStatus('A');
contact3.setTimestamp(System.currentTimeMillis() + 10000);
contact3.setUri("tcp://abc@19293.com");
contact3.setConversationId("2b61024119964f70c8fb9183a8b238d58a1846ed");
ArrayList<Contact> lst2 = new ArrayList<>();
lst2.add(contact3);
List<Contact> out = ContactMerger.mergeContacts(lst,lst2);
......
......@@ -13,6 +13,9 @@ import CardBody from "components/Card/CardBody.js";
import CardFooter from "components/Card/CardFooter.js";
import BusinessOutlinedIcon from "@material-ui/icons/BusinessOutlined";
import QuestionAnswerIcon from "@material-ui/icons/QuestionAnswer";
import SmsFailedIcon from "@material-ui/icons/SmsFailed";
import Search from "@material-ui/icons/Search";
import IconButton from "@material-ui/core/IconButton";
......@@ -457,6 +460,16 @@ export default function Users(props) {
/>}
{contact.organization && ` ${contact.organization}`}
</li>
<li>
{ contact.conversationId === null ? <SmsFailedIcon
fontSize="small"
style={{ marginRight: "10px" }}
></SmsFailedIcon> : <QuestionAnswerIcon
fontSize="small"
style={{ marginRight: "10px" }}
/>}
{contact.conversationId === null ? "No conversation id" : ` ${contact.conversationId}`}
</li>
</ul>
</CardBody>
</a>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment