UNPKG

client-ui

Version:

Testing implementation of nodeJs Backend, angular frontend, and hopefully in a way that this can be deployed to s3/cloudfront

63 lines (55 loc) 1.84 kB
/* global grecaptcha moduleName */ (function () { 'use strict'; function recaptchaService($q) { var self = this; self.widgetId = false; var callback = false; function completePromise(deferred) { return deferred.resolve(self.widgetId); } function getWidgetId() { var deferred = $q.defer(); if (self.widgetId !== false) { deferred.resolve(self.widgetId); } else { callback = function() { completePromise(deferred); }; } return deferred.promise; } function getResponse() { var deferred = $q.defer(); getWidgetId() .then(function(widgetId) { var response = false; try { response = grecaptcha.getResponse(self.widgetId); } catch(e) { response = false; } grecaptcha.reset(self.widgetId); if (response) { deferred.resolve(response); } else { var error = { code: "RECAPTCHA_NO_RESPONSE" }; deferred.reject(error); } }); return deferred.promise; } function setWidgetId(widgetId) { self.widgetId = widgetId; if (callback) { return callback(); } } self.setWidgetId = setWidgetId; self.getResponse = getResponse; } angular.module(moduleName).service('recaptchaService', recaptchaService); recaptchaService.$inject = ['$q']; })();