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")); }
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)); }
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")); }