package sample.save2dropbox.processor;
import io.netty.handler.codec.http.HttpHeaders;
import java.util.List;
import rfx.server.configs.ContentTypePool;
import rfx.server.http.HttpProcessor;
import rfx.server.http.HttpProcessorConfig;
import rfx.server.http.data.HttpRequestEvent;
import rfx.server.http.data.service.DataService;
import rfx.server.util.StringUtil;
import sample.save2dropbox.model.Item;
import com.google.gson.annotations.Expose;
/**
* @author trieu
*
*/
@HttpProcessorConfig(uriPath= "/item-recommend", contentType = ContentTypePool.JSON)
public class RecommendItemHttpProcessor extends HttpProcessor {
@Override
protected DataService process(HttpRequestEvent e) {
System.out.println("UserTrackingProcessor "+e);
try {
String kind = e.param("kind","item");
int userId = StringUtil.safeParseInt(e.param("userId"));
if("item".equals(kind)){
return new ItemDataService().build(userId);
}
} catch (Exception e1) {}
return EMPTY;
}
static class ItemDataService implements DataService{
static final String classpath = ItemDataService.class.getName();
@Expose
List<Item> items;
@Expose
String context = "Items you may like";
@Override
public void freeResource() {
items.clear();
}
@Override
public String getClasspath() {
return classpath;
}
@Override
public boolean isRenderedByTemplate() {
return false;
}
@Override
public List<HttpHeaders> getHttpHeaders() {
// TODO Auto-generated method stub
return null;
}
public List<Item> getItems() {
return items;
}
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
public ItemDataService build(int userId){
//items = SearchEngineLucene.searchItemsByKeywords(Arrays.asList("safari","chrome"), userId);
//items = UserRecommender.recomendItems(userId);
return this;
}
}
}