Beispiel #1
0
        public async Task <IActionResult> Edit(LinkEditModel model)
        {
            if (ModelState.IsValid)
            {
                var verifyResult = _linkVerifier.Verify(model.OriginUrl, Url, Request);
                switch (verifyResult)
                {
                case LinkVerifyResult.InvalidFormat:
                    return(BadRequest("Not a valid URL."));

                case LinkVerifyResult.InvalidLocal:
                    return(BadRequest("Can not use local URL."));

                case LinkVerifyResult.InvalidSelfReference:
                    return(BadRequest("Can not use url pointing to this site."));
                }

                var response = await _linkForwarderService.EditLinkAsync(
                    model.Id, model.OriginUrl, model.Note, model.AkaName, model.IsEnabled);

                if (response.IsSuccess)
                {
                    _cache.Remove(response.Item);
                }
                return(Json(response));
            }
            return(BadRequest("Invalid ModelState"));
        }
Beispiel #2
0
        public async Task <IActionResult> Edit(LinkEditModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var flag = await _featureManager.IsEnabledAsync(nameof(FeatureFlags.AllowSelfRedirection));

            var verifyResult = _linkVerifier.Verify(model.OriginUrl, Url, Request, flag);

            switch (verifyResult)
            {
            case LinkVerifyResult.InvalidFormat:
                return(BadRequest("Not a valid URL."));

            case LinkVerifyResult.InvalidLocal:
                return(BadRequest("Can not use local URL."));

            case LinkVerifyResult.InvalidSelfReference:
                return(BadRequest("Can not use url pointing to this site."));
            }

            var editRequest = new EditLinkRequest(model.Id)
            {
                NewUrl    = model.OriginUrl,
                Note      = model.Note,
                AkaName   = string.IsNullOrWhiteSpace(model.AkaName) ? null : model.AkaName,
                IsEnabled = model.IsEnabled,
                TTL       = model.TTL
            };

            var token = await _linkForwarderService.EditLinkAsync(editRequest);

            if (token is not null)
            {
                _cache.Remove(token);
            }
            return(Json(token));
        }
Beispiel #3
0
        public async Task <IActionResult> Edit(LinkEditModel model)
        {
            if (ModelState.IsValid)
            {
                var verifyResult = _linkVerifier.Verify(model.OriginUrl, Url, Request);
                switch (verifyResult)
                {
                case LinkVerifyResult.InvalidFormat:
                    return(BadRequest("Not a valid URL."));

                case LinkVerifyResult.InvalidLocal:
                    return(BadRequest("Can not use local URL."));

                case LinkVerifyResult.InvalidSelfReference:
                    return(BadRequest("Can not use url pointing to this site."));
                }

                var editRequest = new EditLinkRequest(model.Id)
                {
                    NewUrl    = model.OriginUrl,
                    Note      = model.Note,
                    AkaName   = string.IsNullOrWhiteSpace(model.AkaName) ? null : model.AkaName,
                    IsEnabled = model.IsEnabled,
                    TTL       = model.TTL
                };

                var response = await _linkForwarderService.EditLinkAsync(editRequest);

                if (response.IsSuccess)
                {
                    _cache.Remove(response.Item);
                }
                return(Json(response));
            }
            return(BadRequest("Invalid ModelState"));
        }