Skip to content
Snippets Groups Projects
Commit 30de6a70 authored by Félix  Sidokhine's avatar Félix Sidokhine
Browse files

fixed contacts formatting for input and output

Change-Id: I6cbeba5d37996b923b2cc4fa7f38944a10e6166f
parent 0fbeb3d5
No related branches found
No related tags found
No related merge requests found
ALTER TABLE contacts ADD COLUMN banned BOOLEAN;
ALTER TABLE contacts ADD COLUMN confirmed BOOLEAN;
\ No newline at end of file
......@@ -45,6 +45,8 @@ public class Contact implements DatabaseObject {
private String displayName;
private Long timestamp;
private Character status; //A = added, D = deleted.
private Boolean banned = false;
private Boolean confirmed = false;
public Contact(ResultSet rs) throws Exception {
this.owner = rs.getString("owner");
......@@ -52,6 +54,8 @@ public class Contact implements DatabaseObject {
this.displayName = rs.getString("displayName");
this.timestamp = rs.getLong("timestamp");
this.status = (char) rs.getInt("status");
this.banned = rs.getBoolean("banned");
this.confirmed = rs.getBoolean("confirmed");
}
@Override
......@@ -62,6 +66,8 @@ public class Contact implements DatabaseObject {
else ps.setString(3, "");
ps.setLong(4,timestamp);
ps.setInt(5,status);
ps.setBoolean(6,banned);
ps.setBoolean(7,confirmed);
return ps;
}
......
......@@ -11,12 +11,27 @@ import java.io.IOException;
public class ContactCodec implements Encoder, Decoder {
/**
* {
* "added" : 1595523510,
* "banned" : false,
* "uri" : "520290d7f45e5811fe5af637d328e7fbf5e8cab9",
* "removed" : 0
* }
*/
@Override
public Object decode(JsonIterator jsonIterator) throws IOException {
Any input = jsonIterator.readAny();
Contact contact = new Contact();
contact.setUri(input.get("uri").toString());
if(!input.get("added").toString().isBlank()){
long timeAdded = 0L;
long timeRemoved = 0L;
if(!input.get("added").toString().isBlank())
timeAdded = input.get("added").toLong();
if(!input.get("removed").toString().isBlank()){
timeRemoved = input.get("removed").toLong();
}
if(timeAdded >= timeRemoved){
contact.setStatus('A');
contact.setTimestamp(input.get("added").toLong());
}
......@@ -24,6 +39,8 @@ public class ContactCodec implements Encoder, Decoder {
contact.setStatus('D');
contact.setTimestamp(input.get("removed").toLong());
}
if(!input.get("banned").toString().isBlank()) contact.setBanned(input.get("banned").as(Boolean.class));
if(!input.get("confirmed").toString().isBlank()) contact.setConfirmed(input.get("confirmed").as(Boolean.class));
return contact;
}
......@@ -36,6 +53,8 @@ public class ContactCodec implements Encoder, Decoder {
case 'A': sb.append("\"added\":").append(ct.getTimestamp()); break;
case 'D': sb.append("\"removed\":").append(ct.getTimestamp()); break;
}
sb.append("\"banned\":").append(ct.getBanned()).append(",");
sb.append("\"confirmed\":").append(ct.getConfirmed());
sb.append("}");
jsonStream.write(sb.toString().getBytes());
}
......
......@@ -24,7 +24,8 @@ class ContactTest {
@Test
public void deserialize(){
String str = "[{\"uri\":\"tcp://def@local\",\"added\":1594742298377},{\"uri\":\"tcp://abc@19293.com\",\"removed\":1594742298377}]";
String str = "[{\"uri\":\"tcp://def@local\",\"added\":1594742298377,\"banned\":false,\"confirmed\":true}," +
"{\"uri\":\"tcp://abc@19293.com\",\"removed\":1594742298377,\"banned\":true,\"confirmed\":true}]";
Contact[] contacts = JsonIterator.deserialize(str,Contact[].class);
Assertions.assertEquals(2,contacts.length);
}
......@@ -36,11 +37,15 @@ class ContactTest {
contact1.setStatus('A');
contact1.setTimestamp(System.currentTimeMillis());
contact1.setUri("tcp://def@local");
contact1.setBanned(false);
contact1.setConfirmed(false);
Contact contact2 = new Contact();
contact2.setOwner("fsidokhine");
contact2.setStatus('D');
contact2.setTimestamp(System.currentTimeMillis());
contact2.setUri("tcp://abc@19293.com");
contact2.setBanned(true);
contact2.setConfirmed(true);
ArrayList<Contact> lst = new ArrayList<>();
lst.add(contact1);
lst.add(contact2);
......
{
"net.jami.jams.ad.connector.ADConnector": {
"version": "2.0",
"filename": "ad-connector.jar",
"md5": "9ae70d75d615ee650a6f930c9700de96"
},
"net.jami.jams.authmodule.UserAuthenticationModule": {
"version": "2.0",
"filename": "authentication-module.jar",
"md5": "d69348e9c6bd62678880fea25ed03605"
},
"net.jami.jams.server.Server": {
"version": "2.0",
"md5": "bd2af8ffbd4c41ea5f86cc508d1ea5c8",
"filename": "jams-server.jar"
},
"net.jami.jams.ca.JamsCA": {
"version": "2.0",
"md5": "4bbfb901bb528ff77fec1c9d0a2d8b45",
"filename": "cryptoengine.jar"
},
"net.jami.jams.ldap.connector.LDAPConnector": {
"version": "2.0",
"md5": "1094b1742b016e39824693a511978916",
"filename": "ldap-connector.jar"
}
}
\ No newline at end of file
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