package controllers;
import java.util.List;
import dao.Dao;
import exceptions.ExceptionMapper;
import managers.FactoryManager;
import managers.StationManager;
import models.Factory;
import models.Station;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Result;
/**
* Factory CRUD services.
*
* @author: bbenson
*/
public class Factories extends Controller {
private static final FactoryManager factoryManager = new FactoryManager(new Dao<Factory>(Factory.class),
new StationManager(new Dao<Station>(Station.class)));
public static Result list() {
try {
List<Factory> factories = factoryManager.list();
return ok(Json.toJson(factories));
} catch (RuntimeException ex) {
return ExceptionMapper.toResult(ex);
}
}
public static Result read(Long factoryId) {
try {
Factory factory = factoryManager.read(factoryId);
return ok(Json.toJson(factory));
} catch (RuntimeException ex) {
return ExceptionMapper.toResult(ex);
}
}
public static Result create() {
try {
Factory factoryIn = Json.fromJson(request().body().asJson(), Factory.class);
Factory factory = factoryManager.create(factoryIn);
return created(Json.toJson(factory));
} catch (RuntimeException ex) {
return ExceptionMapper.toResult(ex);
}
}
public static Result update(Long factoryId) {
try {
Factory factoryIn = Json.fromJson(request().body().asJson(), Factory.class);
Factory factory = factoryManager.update(factoryIn);
return ok(Json.toJson(factory));
} catch (RuntimeException ex) {
return ExceptionMapper.toResult(ex);
}
}
public static Result delete(Long factoryId) {
try {
factoryManager.delete(factoryId);
return ok();
} catch (RuntimeException ex) {
return ExceptionMapper.toResult(ex);
}
}
}