package validators; import api.v1.PoseidonAPIObject; import api.v1.Product; import com.avaje.ebean.Model; import models.ProductModel; public class ProductValidator implements ModelValidator, ApiValidator{ @Override public ValidationResult validateApi(PoseidonAPIObject apiObject) { ValidationResult result = new ValidationResult(); Product apiProduct = (Product) apiObject; if ( apiProduct.name == null || apiProduct.name.isEmpty()){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_NAME_MISSING)); } if ( apiProduct.sku == null || apiProduct.sku.isEmpty()){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_SKU_MISSING)); } if ( apiProduct.price == null){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_PRICE_MISSING)); } if ( apiProduct.price != null && apiProduct.price < 0){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_PRICE_NEGATIVE)); } return result; } @Override public ValidationResult validateModel(Model modelObject) { ValidationResult result = new ValidationResult(); ProductModel product = (ProductModel) modelObject; if ( product.name == null || product.name.isEmpty()){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_NAME_MISSING)); } /* if ( product.product == null || product.product.isEmpty()){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_SKU_MISSING)); } */ if ( product.price == null){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_PRICE_MISSING)); } if ( product.price != null && product.price < 0){ result.addValidationError(new ValidationError(ValidationErrorType.PRODUCT_PRICE_NEGATIVE)); } return result; } }