package com.venky.swf.controller;
import java.util.Arrays;
import java.util.List;
import com.venky.swf.controller.annotations.SingleRecordAction;
import com.venky.swf.db.Database;
import com.venky.swf.db.model.User;
import com.venky.swf.path.Path;
import com.venky.swf.views.BytesView;
import com.venky.swf.views.View;
import com.venky.swf.views.model.ModelListView;
import com.venky.swf.views.model.ModelShowView;
public class UsersController extends ModelController<User>{
public UsersController(Path path) {
super(path);
}
@SingleRecordAction
public View generateApiKey(int id){
User u = Database.getTable(User.class).get(id);
u.generateApiKey();
StringBuilder message = new StringBuilder();
message.append("API Key for ").append(u.getName()).append(" generated: (").append(u.getApiKey()).append(")");
if (getIntegrationAdaptor() != null){
return getIntegrationAdaptor().createResponse(getPath(), u,Arrays.asList("API_KEY"));
}else {
return new BytesView(getPath(), u.getApiKey().getBytes());
}
}
protected View constructModelListView(List<User> records, boolean isCompleteList){
@SuppressWarnings("unchecked")
ModelListView<User> v = (ModelListView<User>) super.constructModelListView(records, isCompleteList);
v.getIncludedFields().remove("CHANGE_PASSWORD");
return v;
}
protected ModelShowView<User> constructModelShowView(Path path, User record){
ModelShowView<User> v = new ModelShowView<User>(path, getIncludedFields(), record);
v.getIncludedFields().remove("CHANGE_PASSWORD");
return v;
}
}