コード例 #1
0
        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 }));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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);
        }