public async Task <IActionResult> EditWebHook(int id, EditWebHookViewModel model) { var team = await _context.Teams.SingleOrDefaultAsync(m => m.Slug == TeamSlug && m.IsActive); if (team == null) { return(NotFound()); } var webHook = await _context.WebHooks .SingleOrDefaultAsync(m => m.Id == id && m.TeamId == team.Id); if (webHook == null) { return(NotFound()); } // check model if (!ModelState.IsValid) { return(View(model)); } // update model webHook.Url = model.Url; webHook.ContentType = model.ContentType; webHook.IsActive = model.IsActive; webHook.TriggerOnPaid = model.TriggerOnPaid; webHook.TriggerOnReconcile = model.TriggerOnReconcile; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(WebHooks), new { team = team.Slug })); }
public async Task <IActionResult> EditWebHook(int id) { var team = await _context.Teams.SingleOrDefaultAsync(m => m.Slug == TeamSlug && m.IsActive); if (team == null) { return(NotFound()); } var webHook = await _context.WebHooks .SingleOrDefaultAsync(m => m.Id == id && m.TeamId == team.Id); if (webHook == null) { return(NotFound()); } var model = new EditWebHookViewModel() { Id = webHook.Id, Url = webHook.Url, IsActive = webHook.IsActive, TriggerOnPaid = webHook.TriggerOnPaid, }; return(View(model)); }
public async Task <IActionResult> Edit(EditWebHookViewModel model) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageWebHooks)) { return(Unauthorized()); } var webHook = await _store.GetWebHookAsync(model.WebHook.Id); if (webHook == null) { return(NotFound()); } if (ModelState.IsValid) { await ProcessWebHookAsync(model); await _store.TryUpdateWebHook(model.WebHook); _notifier.Success(H["Webhook updated successfully"]); return(RedirectToAction(nameof(Index))); } // If we got this far, something failed, redisplay form model.Events = await _eventManager.GetAllWebHookEventsAsync(); return(View(model)); }
public async Task <IActionResult> Edit(string id) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageWebHooks)) { return(Unauthorized()); } var webHook = await _store.GetWebHookAsync(id); if (webHook == null) { return(NotFound()); } var events = await _eventManager.GetAllWebHookEventsAsync(); var model = new EditWebHookViewModel { Events = events, WebHook = webHook, CustomPayload = webHook.PayloadTemplate != null, SubscribeAllEvents = webHook.Events.Contains("*") }; return(View(model)); }
public async Task <IActionResult> Create() { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageWebHooks)) { return(Unauthorized()); } var events = await _eventManager.GetAllWebHookEventsAsync(); var model = new EditWebHookViewModel { Events = events }; return(View(model)); }
private async Task ProcessWebHookAsync(EditWebHookViewModel model) { // Clear all events so that the event provider can fallback to the wildcard event if (model.SubscribeAllEvents) { model.WebHook.Events.Clear(); } // Clear the custom payload template if we aren't using it if (!model.CustomPayload) { model.WebHook.PayloadTemplate = null; } // Remove empty custom headers model.WebHook.Headers = model.WebHook.Headers.Where(header => !string.IsNullOrWhiteSpace(header.Key)).ToList(); // Validate and optimize the webhook's event subscriptions model.WebHook.Events = await _eventManager.NormalizeEventsAsync(model.WebHook.Events); }