public void UpdateShareLink() { CreatShareLinkModel item = new CreatShareLinkModel() { item = new CItem() { id = TestData.fileId, type = "file", perm = 7 }, expires_at = "2020-09-30T08:00:00+08:00", limited_times = 10, password = "******", title = TestData.fileName }; var linkId = helper.CreatShareLink(TestData.access_token, item, out long code); UpdateShareLinkModel uitem = new UpdateShareLinkModel() { item = new UItem() { perm = 7 }, link_id = linkId, expires_at = "2020-10-30T08:00:00+08:00", limited_times = 10, password = "******", title = TestData.fileName }; var code2 = helper.UpdateShareLink(TestData.access_token, uitem); Assert.IsNotNull(linkId); Assert.IsNotNull(code2); }
/// <summary> /// 创建匿名共享 /// </summary> /// <returns>匿名共享ID</returns> public string CreatShareLink(string token, CreatShareLinkModel model, out long errorCode) { try { var handler = new WebRequestHandler(); handler.ServerCertificateValidationCallback = delegate { return(true); }; using (var httpClient = new HttpClient(handler)) { httpClient.DefaultRequestHeaders.Add("Authorization", token); var json = JsonConvert.SerializeObject(model); var content = new StringContent(json, Encoding.UTF8, "application/json"); var res = httpClient.PostAsync($"{Constant.OAuth2Url}/api/shared-link/v1/document/anonymous", content).Result; var resStr = res.Content.ReadAsStringAsync().Result; int resCode = (int)res.StatusCode; // 若为错误返回码则抛出异常 if (resCode < 200 || resCode >= 300) { var errModel = JsonConvert.DeserializeObject <ErrorModel>(resStr); _log.Debug($"CreatShareLink Exception: {errModel.cause}, Code: {errModel.code}"); errorCode = errModel.code; // 时间无效 if (!string.IsNullOrEmpty(errModel.cause) && errModel.cause.Contains("expires") && errModel.code == 400000000) { errorCode = 400001010; } return(string.Empty); } if (resCode == 201) { errorCode = 0; return(JsonConvert.DeserializeObject <ShareLinkItem>(resStr).id); } errorCode = resCode; return(string.Empty); } } catch (Exception ex) { _log.Debug($"CreatShareLink Exception: {ex.Message}"); throw ex; } }
public JsonResult CreateShareLink() { try { _log.Debug("CreateShareLink Start"); var tokenId = CommonHelper.GetToken(Request.Form["TokenId"]); CreatShareLinkModel item = new CreatShareLinkModel() { item = new CItem() { id = CommonHelper.DecodeUrl(Request.Form["Docid"]), type = Request.Form["FileType"], perms = GetPerms(Convert.ToInt64(Request.Form["Perm"])) }, expires_at = CommonHelper.DecodeUrl(Request.Form["ExpiresAt"]), limited_times = string.IsNullOrEmpty(Request.Form["LimitedTimes"]) ? -1 : Convert.ToInt64(Request.Form["LimitedTimes"]), password = string.IsNullOrEmpty(Request.Form["Password"]) ? "" : CommonHelper.DecodeUrl(Request.Form["Password"]), title = CommonHelper.DecodeUrl(Request.Form["Title"]) }; IShareLinkAPIHelper helper = new ShareLinkAPIHelper(); long errorCode = 0; var shareLinkId = helper.CreatShareLink(tokenId, item, out errorCode); if (errorCode > 0) { return(Json(new JsonModel { Success = true, StatusCode = errorCode })); } _log.Debug("CreateShareLink End"); return(Json(new JsonModel { Success = true, StatusCode = errorCode, Data = shareLinkId })); } catch (Exception ex) { _log.Debug($"CreateShareLink Exception: {ex.Message}"); return(Json(new JsonModel { Success = false, Message = ex.Message })); } }
public void CreatShareLinkModelTest() { CItem cItem = new CItem() { id = "id", perm = 25, type = "type" }; var id = cItem.id; var perm = cItem.perm; var type = cItem.type; Assert.IsTrue(id == "id"); Assert.IsTrue(perm == 25); Assert.IsTrue(type == "type"); CreatShareLinkModel creatShareLinkModel = new CreatShareLinkModel() { item = cItem, expires_at = "expires_at", limited_times = 1, password = "******", title = "title" }; var item = creatShareLinkModel.item; var expires_at = creatShareLinkModel.expires_at; var limited_times = creatShareLinkModel.limited_times; var password = creatShareLinkModel.password; var title = creatShareLinkModel.title; Assert.IsTrue(item == cItem); Assert.IsTrue(expires_at == "expires_at"); Assert.IsTrue(limited_times == 1); Assert.IsTrue(password == "password"); Assert.IsTrue(title == "title"); }