package controllers.crud;
import static play.libs.Json.toJson;
import java.util.UUID;
import javax.inject.Inject;
import models.S3File;
import models.dao.S3FileDAO;
import play.Logger;
import play.Logger.ALogger;
import play.mvc.Result;
import play.utils.crud.APIController;
import com.google.common.collect.ImmutableMap;
import controllers.HttpUtils;
public class S3FileAPIController extends APIController<UUID, S3File> {
private static ALogger log = Logger.of(S3FileAPIController.class);
@Inject
public S3FileAPIController(S3FileDAO s3FileDAO) {
super(s3FileDAO, UUID.class, S3File.class);
}
@Override
public Result create() {
if (log.isDebugEnabled())
log.debug("create <-");
S3File file = null;
UUID key = null;
try {
file = HttpUtils.uploadFile(request(), "qqfile", "Post");
if (log.isDebugEnabled())
log.debug("file : " + file);
key = dao.create(file);
} catch (Exception e) {
log.error("exception occured : " + e, e);
}
if (file != null && key != null) {
return ok(toJson(ImmutableMap.of("status", "OK", "success", "true",
"key", key, "data", file)));
} else {
return internalServerError(toJson(ImmutableMap.of("status", "error")));
}
}
}