Add error checking to client-side permalink service

This commit is contained in:
Rohan Mitchell
2015-07-10 09:41:03 +10:00
parent 73b90dba10
commit 197c99349d
2 changed files with 41 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ angular.module("admin.enterprises").factory 'PermalinkChecker', ($q, $http) ->
new class PermalinkChecker
deferredRequest: null
deferredAbort: null
MAX_PERMALINK_LENGTH: 255
check: (permalink) =>
@abort(@deferredAbort) if @deferredRequest && @deferredRequest.promise
@@ -15,9 +16,14 @@ angular.module("admin.enterprises").factory 'PermalinkChecker', ($q, $http) ->
timeout: deferredAbort.promise
)
.success( (data) =>
deferredRequest.resolve
permalink: data
available: "Available"
if data.length > @MAX_PERMALINK_LENGTH || !data.match(/^[\w-]+$/)
deferredRequest.resolve
permalink: permalink
available: "Error"
else
deferredRequest.resolve
permalink: data
available: "Available"
).error (data,status) =>
if status == 409
deferredRequest.resolve