Skip to content

Instantly share code, notes, and snippets.

@s22su
Created September 4, 2015 12:27
Show Gist options
  • Select an option

  • Save s22su/a5ddd61294fa12f479c7 to your computer and use it in GitHub Desktop.

Select an option

Save s22su/a5ddd61294fa12f479c7 to your computer and use it in GitHub Desktop.
/**
* Checks, if slug exists in database, if so, it adds number after it
* @param {String} pretty_slug
* @return {Promise} when resolved, gets valid slug
*/
validateSlug: function(pretty_slug) {
return PrettyUrls.findByPrettySlug(pretty_slug)
.then(function(slug) {
var newSlug = prettyurls._addNumberToSlug(pretty_slug);
return prettyurls.validateSlug(newSlug);
},
function(err) {
return pretty_slug;
});
}
/**
* Adds +1 to slug
* @param {String} pretty_slug
* @return {String}
*/
_addNumberToSlug: function(pretty_slug) {
var sp = pretty_slug.split('-');
var num = parseInt(sp[sp.length-1], 10);
if(isNaN(num)) {
var newSlug = pretty_slug + '-1';
return newSlug;
}
else {
num = num + 1;
sp[sp.length-1] = num;
var newSlug = sp.join('-');
return newSlug;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment