mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-04-07 11:08:36 +00:00
Add sender & recipient filters to rhizome restful api
This commit is contained in:
parent
a997fdf020
commit
6c4e7de574
@ -37,6 +37,8 @@ public class RhizomeBundleList extends AbstractJsonList<RhizomeListBundle, IOExc
|
||||
private String sinceToken;
|
||||
private String service;
|
||||
private String name;
|
||||
private SubscriberId sender;
|
||||
private SubscriberId recipient;
|
||||
|
||||
public RhizomeBundleList(ServalDHttpConnectionFactory connector)
|
||||
{
|
||||
@ -49,6 +51,12 @@ public class RhizomeBundleList extends AbstractJsonList<RhizomeListBundle, IOExc
|
||||
public void setNameFilter(String name){
|
||||
this.name = name;
|
||||
}
|
||||
public void setSenderFilter(SubscriberId sender){
|
||||
this.sender = sender;
|
||||
}
|
||||
public void setRecipientFilter(SubscriberId recipient){
|
||||
this.recipient = recipient;
|
||||
}
|
||||
|
||||
public RhizomeBundleList(ServalDHttpConnectionFactory connector, String since_token)
|
||||
{
|
||||
@ -72,24 +80,30 @@ public class RhizomeBundleList extends AbstractJsonList<RhizomeListBundle, IOExc
|
||||
|
||||
@Override
|
||||
protected String getUrl() {
|
||||
String url;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (this.sinceToken == null)
|
||||
url = "/restful/rhizome/bundlelist.json";
|
||||
sb.append("/restful/rhizome/bundlelist.json");
|
||||
else if(this.sinceToken.equals(""))
|
||||
url = "/restful/rhizome/newsince/bundlelist.json";
|
||||
sb.append("/restful/rhizome/newsince/bundlelist.json");
|
||||
else
|
||||
url = "/restful/rhizome/newsince/" + this.sinceToken + "/bundlelist.json";
|
||||
String parms="";
|
||||
if (service != null)
|
||||
parms += "service="+service;
|
||||
if (name!=null) {
|
||||
if (!"".equals(parms))
|
||||
parms+="&";
|
||||
parms += "name=" + name;
|
||||
sb.append("/restful/rhizome/newsince/").append(this.sinceToken).append("/bundlelist.json");
|
||||
|
||||
char parmDelim = '?';
|
||||
if (service != null){
|
||||
sb.append(parmDelim).append("service=").append(service);
|
||||
parmDelim='&';
|
||||
}
|
||||
if (!"".equals(parms))
|
||||
url+="?"+parms;
|
||||
return url;
|
||||
if (name!=null) {
|
||||
sb.append(parmDelim).append("name=").append(name);
|
||||
parmDelim='&';
|
||||
}
|
||||
if (sender!=null) {
|
||||
sb.append(parmDelim).append("sender=").append(sender.toHex());
|
||||
parmDelim='&';
|
||||
}
|
||||
if (recipient!=null)
|
||||
sb.append(parmDelim).append("recipient=").append(recipient.toHex());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -206,6 +206,20 @@ static int restful_open_cursor(httpd_request *r)
|
||||
// TODO fail?
|
||||
}
|
||||
|
||||
const char *sender = http_request_get_query_param(&r->http, "sender");
|
||||
if (sender && *sender){
|
||||
if (str_to_sid_t(&r->u.rhlist.cursor.sender, sender) != -1)
|
||||
r->u.rhlist.cursor.is_sender_set = 1;
|
||||
// TODO fail?
|
||||
}
|
||||
|
||||
const char *recipient = http_request_get_query_param(&r->http, "recipient");
|
||||
if (recipient && *recipient){
|
||||
if (str_to_sid_t(&r->u.rhlist.cursor.recipient, recipient) != -1)
|
||||
r->u.rhlist.cursor.is_recipient_set = 1;
|
||||
// TODO fail?
|
||||
}
|
||||
|
||||
int ret = rhizome_list_open(&r->u.rhlist.cursor);
|
||||
if (ret == -1)
|
||||
return http_request_rhizome_response(r, 500, "Failed to open list");
|
||||
|
Loading…
x
Reference in New Issue
Block a user