"use strict"; angular.module("vocabulary") .service("categoryValidationService", ["categoryApi", function (categoryApi) { function validateCategoryUpdate(newCategoryName){ var errors = {}; if(newCategoryName.length <= 0){ errors.shortName = true; } if(newCategoryName.length > 255){ errors.longName = true; } var regex = /^[a-zA-Z0-9\-\/ ]*$/; if(!regex.test(newCategoryName)){ errors.pattern = true; } return categoryApi.validateNewCategoryNameForUser(newCategoryName) .then(function (isValid) { if (!isValid) { errors.duplicate = true; } if(Object.keys(errors).size() > 0) { throw errors; } }); } return { validateCategoryUpdate: validateCategoryUpdate }; }]);