package controllers;
import cloudify.widget.common.WidgetResourcesUtils;
import models.User;
import models.Widget;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Result;
import server.ApplicationContext;
import utils.ResourceManagerFactory;
/**
* Created with IntelliJ IDEA.
* User: guym
* Date: 8/17/14
* Time: 6:10 PM
*/
public class WidgetResources extends Controller {
static public Result getRecipeResourceDetails( Long widgetId, String authToken ){
User user = User.validateAuthToken( authToken );
Widget w = Widget.findByUserAndId( user, widgetId );
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
ResourceStatusResult result = new ResourceStatusResult();
result.downloaded = widgetRecipeManager.isExtracted();
result.lastModified = widgetRecipeManager.lastModified();
return ok(Json.toJson(result));
}
static public Result getWalkRecipeResourceResult( Long widgetId, String authToken ){
User user = User.validateAuthToken(authToken);
Widget w = Widget.findByUserAndId(user,widgetId);
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
return ok ( Json.toJson( widgetRecipeManager.walk() ));
}
static public Result postManualRefreshResource( Long widgetId, String authToken ){
User user = User.validateAuthToken(authToken);
Widget w = Widget.findByUserAndId(user,widgetId);
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
widgetRecipeManager.delete();
widgetRecipeManager.download();
widgetRecipeManager.extract();
return getRecipeResourceDetails( widgetId, authToken );
}
static public Result getResourceContent( Long widgetId, String authToken, String path ){
User user = User.validateAuthToken(authToken);
Widget w = Widget.findByUserAndId(user,widgetId);
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
return ok( widgetRecipeManager.read( path ) );
}
static public Result getProviderResourceDetails( Long widgetId, String authToken ){
User user = User.validateAuthToken( authToken );
Widget w = Widget.findByUserAndId( user, widgetId );
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
ResourceStatusResult result = new ResourceStatusResult();
result.downloaded = widgetRecipeManager.isExtracted();
result.lastModified = widgetRecipeManager.lastModified();
return ok(Json.toJson(result));
}
static public Result getWalkProviderResourceResult( Long widgetId, String authToken ){
User user = User.validateAuthToken(authToken);
Widget w = Widget.findByUserAndId(user,widgetId);
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
return ok ( Json.toJson( widgetRecipeManager.walk() ));
}
static public Result postManualRefreshProvider( Long widgetId, String authToken ){
User user = User.validateAuthToken(authToken);
Widget w = Widget.findByUserAndId(user,widgetId);
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getCloudProviderManager(w);
widgetRecipeManager.delete();
widgetRecipeManager.download();
widgetRecipeManager.extract();
return getRecipeResourceDetails( widgetId, authToken );
}
static public Result getProviderContent( Long widgetId, String authToken, String path ){
User user = User.validateAuthToken(authToken);
Widget w = Widget.findByUserAndId(user,widgetId);
ResourceManagerFactory resourceManagerFactory = ApplicationContext.get().getResourceManagerFactory();
WidgetResourcesUtils.ResourceManager widgetRecipeManager = resourceManagerFactory.getWidgetRecipeManager(w);
return ok( widgetRecipeManager.read( path ) );
}
public static class ResourceStatusResult{
public long lastModified;
public boolean downloaded;
}
}