public async Task <IActionResult> Post([FromBody] WebHook webHook) { if (webHook == null) { throw new ArgumentNullException("webHook"); } string userId = User.Identity.Name; await VerifyFilters(webHook); try { // Validate the WebHook is Active (using echo) await _manager.VerifyWebHookAsync(webHook); // Validate the provided WebHook ID (or force one to be created on server side) IWebHookIdValidator idValidator = (IWebHookIdValidator)HttpContext.RequestServices.GetService(typeof(IWebHookIdValidator)); if (idValidator == null) { idValidator = new DefaultWebHookIdValidator(); } await idValidator.ValidateIdAsync(Request, webHook); // Add WebHook for this user. StoreResult result = await _store.InsertWebHookAsync(userId, webHook); if (result == StoreResult.Success) { return(CreatedAtRoute(WebHookRouteNames.RegistrationLookupAction, new { id = webHook.Id }, webHook)); } return(CreateResultFromStoreResult(result)); } catch (Exception ex) { string msg = string.Format(CustomApiResource.RegistrationController_RegistrationFailure, ex.Message); _logger.LogError(msg); return(StatusCode(StatusCodes.Status500InternalServerError, msg)); } }
public async Task <IActionResult> Put(string id, [FromBody] WebHook webHook) { if (webHook == null) { return(BadRequest()); } if (!string.Equals(id, webHook.Id, StringComparison.OrdinalIgnoreCase)) { return(BadRequest()); } string userId = User.Identity.Name; await VerifyFilters(webHook); try { // Validate the WebHook is Active (using echo) await _manager.VerifyWebHookAsync(webHook); // Validate the provided WebHook ID (or force one to be created on server side) IWebHookIdValidator idValidator = (IWebHookIdValidator)HttpContext.RequestServices.GetService(typeof(IWebHookIdValidator)); if (idValidator == null) { idValidator = new DefaultWebHookIdValidator(); } await idValidator.ValidateIdAsync(Request, webHook); StoreResult result = await _store.UpdateWebHookAsync(userId, webHook); return(CreateResultFromStoreResult(result)); } catch (Exception ex) { string msg = string.Format(CustomApiResource.RegistrationController_UpdateFailure, ex.Message); _logger.LogError(msg); return(StatusCode(StatusCodes.Status500InternalServerError, msg)); } }