001package com.box.sdkgen.managers.trashedweblinks; 002 003import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; 004import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; 005import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; 006import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; 007import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; 008 009import com.box.sdkgen.networking.auth.Authentication; 010import com.box.sdkgen.networking.fetchoptions.FetchOptions; 011import com.box.sdkgen.networking.fetchoptions.ResponseFormat; 012import com.box.sdkgen.networking.fetchresponse.FetchResponse; 013import com.box.sdkgen.networking.network.NetworkSession; 014import com.box.sdkgen.schemas.trashweblink.TrashWebLink; 015import com.box.sdkgen.schemas.trashweblinkrestored.TrashWebLinkRestored; 016import com.box.sdkgen.serialization.json.JsonManager; 017import java.util.Map; 018 019public class TrashedWebLinksManager { 020 021 public Authentication auth; 022 023 public NetworkSession networkSession; 024 025 public TrashedWebLinksManager() { 026 this.networkSession = new NetworkSession(); 027 } 028 029 protected TrashedWebLinksManager(Builder builder) { 030 this.auth = builder.auth; 031 this.networkSession = builder.networkSession; 032 } 033 034 /** 035 * Restores a web link that has been moved to the trash. 036 * 037 * <p>An optional new parent ID can be provided to restore the web link to in case the original 038 * folder has been deleted. 039 * 040 * @param webLinkId The ID of the web link. Example: "12345" 041 */ 042 public TrashWebLinkRestored restoreWeblinkFromTrash(String webLinkId) { 043 return restoreWeblinkFromTrash( 044 webLinkId, 045 new RestoreWeblinkFromTrashRequestBody(), 046 new RestoreWeblinkFromTrashQueryParams(), 047 new RestoreWeblinkFromTrashHeaders()); 048 } 049 050 /** 051 * Restores a web link that has been moved to the trash. 052 * 053 * <p>An optional new parent ID can be provided to restore the web link to in case the original 054 * folder has been deleted. 055 * 056 * @param webLinkId The ID of the web link. Example: "12345" 057 * @param requestBody Request body of restoreWeblinkFromTrash method 058 */ 059 public TrashWebLinkRestored restoreWeblinkFromTrash( 060 String webLinkId, RestoreWeblinkFromTrashRequestBody requestBody) { 061 return restoreWeblinkFromTrash( 062 webLinkId, 063 requestBody, 064 new RestoreWeblinkFromTrashQueryParams(), 065 new RestoreWeblinkFromTrashHeaders()); 066 } 067 068 /** 069 * Restores a web link that has been moved to the trash. 070 * 071 * <p>An optional new parent ID can be provided to restore the web link to in case the original 072 * folder has been deleted. 073 * 074 * @param webLinkId The ID of the web link. Example: "12345" 075 * @param queryParams Query parameters of restoreWeblinkFromTrash method 076 */ 077 public TrashWebLinkRestored restoreWeblinkFromTrash( 078 String webLinkId, RestoreWeblinkFromTrashQueryParams queryParams) { 079 return restoreWeblinkFromTrash( 080 webLinkId, 081 new RestoreWeblinkFromTrashRequestBody(), 082 queryParams, 083 new RestoreWeblinkFromTrashHeaders()); 084 } 085 086 /** 087 * Restores a web link that has been moved to the trash. 088 * 089 * <p>An optional new parent ID can be provided to restore the web link to in case the original 090 * folder has been deleted. 091 * 092 * @param webLinkId The ID of the web link. Example: "12345" 093 * @param requestBody Request body of restoreWeblinkFromTrash method 094 * @param queryParams Query parameters of restoreWeblinkFromTrash method 095 */ 096 public TrashWebLinkRestored restoreWeblinkFromTrash( 097 String webLinkId, 098 RestoreWeblinkFromTrashRequestBody requestBody, 099 RestoreWeblinkFromTrashQueryParams queryParams) { 100 return restoreWeblinkFromTrash( 101 webLinkId, requestBody, queryParams, new RestoreWeblinkFromTrashHeaders()); 102 } 103 104 /** 105 * Restores a web link that has been moved to the trash. 106 * 107 * <p>An optional new parent ID can be provided to restore the web link to in case the original 108 * folder has been deleted. 109 * 110 * @param webLinkId The ID of the web link. Example: "12345" 111 * @param headers Headers of restoreWeblinkFromTrash method 112 */ 113 public TrashWebLinkRestored restoreWeblinkFromTrash( 114 String webLinkId, RestoreWeblinkFromTrashHeaders headers) { 115 return restoreWeblinkFromTrash( 116 webLinkId, 117 new RestoreWeblinkFromTrashRequestBody(), 118 new RestoreWeblinkFromTrashQueryParams(), 119 headers); 120 } 121 122 /** 123 * Restores a web link that has been moved to the trash. 124 * 125 * <p>An optional new parent ID can be provided to restore the web link to in case the original 126 * folder has been deleted. 127 * 128 * @param webLinkId The ID of the web link. Example: "12345" 129 * @param requestBody Request body of restoreWeblinkFromTrash method 130 * @param headers Headers of restoreWeblinkFromTrash method 131 */ 132 public TrashWebLinkRestored restoreWeblinkFromTrash( 133 String webLinkId, 134 RestoreWeblinkFromTrashRequestBody requestBody, 135 RestoreWeblinkFromTrashHeaders headers) { 136 return restoreWeblinkFromTrash( 137 webLinkId, requestBody, new RestoreWeblinkFromTrashQueryParams(), headers); 138 } 139 140 /** 141 * Restores a web link that has been moved to the trash. 142 * 143 * <p>An optional new parent ID can be provided to restore the web link to in case the original 144 * folder has been deleted. 145 * 146 * @param webLinkId The ID of the web link. Example: "12345" 147 * @param queryParams Query parameters of restoreWeblinkFromTrash method 148 * @param headers Headers of restoreWeblinkFromTrash method 149 */ 150 public TrashWebLinkRestored restoreWeblinkFromTrash( 151 String webLinkId, 152 RestoreWeblinkFromTrashQueryParams queryParams, 153 RestoreWeblinkFromTrashHeaders headers) { 154 return restoreWeblinkFromTrash( 155 webLinkId, new RestoreWeblinkFromTrashRequestBody(), queryParams, headers); 156 } 157 158 /** 159 * Restores a web link that has been moved to the trash. 160 * 161 * <p>An optional new parent ID can be provided to restore the web link to in case the original 162 * folder has been deleted. 163 * 164 * @param webLinkId The ID of the web link. Example: "12345" 165 * @param requestBody Request body of restoreWeblinkFromTrash method 166 * @param queryParams Query parameters of restoreWeblinkFromTrash method 167 * @param headers Headers of restoreWeblinkFromTrash method 168 */ 169 public TrashWebLinkRestored restoreWeblinkFromTrash( 170 String webLinkId, 171 RestoreWeblinkFromTrashRequestBody requestBody, 172 RestoreWeblinkFromTrashQueryParams queryParams, 173 RestoreWeblinkFromTrashHeaders headers) { 174 Map<String, String> queryParamsMap = 175 prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); 176 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 177 FetchResponse response = 178 this.networkSession 179 .getNetworkClient() 180 .fetch( 181 new FetchOptions.Builder( 182 String.join( 183 "", 184 this.networkSession.getBaseUrls().getBaseUrl(), 185 "/2.0/web_links/", 186 convertToString(webLinkId)), 187 "POST") 188 .params(queryParamsMap) 189 .headers(headersMap) 190 .data(JsonManager.serialize(requestBody)) 191 .contentType("application/json") 192 .responseFormat(ResponseFormat.JSON) 193 .auth(this.auth) 194 .networkSession(this.networkSession) 195 .build()); 196 return JsonManager.deserialize(response.getData(), TrashWebLinkRestored.class); 197 } 198 199 /** 200 * Retrieves a web link that has been moved to the trash. 201 * 202 * @param webLinkId The ID of the web link. Example: "12345" 203 */ 204 public TrashWebLink getTrashedWebLinkById(String webLinkId) { 205 return getTrashedWebLinkById( 206 webLinkId, new GetTrashedWebLinkByIdQueryParams(), new GetTrashedWebLinkByIdHeaders()); 207 } 208 209 /** 210 * Retrieves a web link that has been moved to the trash. 211 * 212 * @param webLinkId The ID of the web link. Example: "12345" 213 * @param queryParams Query parameters of getTrashedWebLinkById method 214 */ 215 public TrashWebLink getTrashedWebLinkById( 216 String webLinkId, GetTrashedWebLinkByIdQueryParams queryParams) { 217 return getTrashedWebLinkById(webLinkId, queryParams, new GetTrashedWebLinkByIdHeaders()); 218 } 219 220 /** 221 * Retrieves a web link that has been moved to the trash. 222 * 223 * @param webLinkId The ID of the web link. Example: "12345" 224 * @param headers Headers of getTrashedWebLinkById method 225 */ 226 public TrashWebLink getTrashedWebLinkById( 227 String webLinkId, GetTrashedWebLinkByIdHeaders headers) { 228 return getTrashedWebLinkById(webLinkId, new GetTrashedWebLinkByIdQueryParams(), headers); 229 } 230 231 /** 232 * Retrieves a web link that has been moved to the trash. 233 * 234 * @param webLinkId The ID of the web link. Example: "12345" 235 * @param queryParams Query parameters of getTrashedWebLinkById method 236 * @param headers Headers of getTrashedWebLinkById method 237 */ 238 public TrashWebLink getTrashedWebLinkById( 239 String webLinkId, 240 GetTrashedWebLinkByIdQueryParams queryParams, 241 GetTrashedWebLinkByIdHeaders headers) { 242 Map<String, String> queryParamsMap = 243 prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); 244 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 245 FetchResponse response = 246 this.networkSession 247 .getNetworkClient() 248 .fetch( 249 new FetchOptions.Builder( 250 String.join( 251 "", 252 this.networkSession.getBaseUrls().getBaseUrl(), 253 "/2.0/web_links/", 254 convertToString(webLinkId), 255 "/trash"), 256 "GET") 257 .params(queryParamsMap) 258 .headers(headersMap) 259 .responseFormat(ResponseFormat.JSON) 260 .auth(this.auth) 261 .networkSession(this.networkSession) 262 .build()); 263 return JsonManager.deserialize(response.getData(), TrashWebLink.class); 264 } 265 266 /** 267 * Permanently deletes a web link that is in the trash. This action cannot be undone. 268 * 269 * @param webLinkId The ID of the web link. Example: "12345" 270 */ 271 public void deleteTrashedWebLinkById(String webLinkId) { 272 deleteTrashedWebLinkById(webLinkId, new DeleteTrashedWebLinkByIdHeaders()); 273 } 274 275 /** 276 * Permanently deletes a web link that is in the trash. This action cannot be undone. 277 * 278 * @param webLinkId The ID of the web link. Example: "12345" 279 * @param headers Headers of deleteTrashedWebLinkById method 280 */ 281 public void deleteTrashedWebLinkById(String webLinkId, DeleteTrashedWebLinkByIdHeaders headers) { 282 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 283 FetchResponse response = 284 this.networkSession 285 .getNetworkClient() 286 .fetch( 287 new FetchOptions.Builder( 288 String.join( 289 "", 290 this.networkSession.getBaseUrls().getBaseUrl(), 291 "/2.0/web_links/", 292 convertToString(webLinkId), 293 "/trash"), 294 "DELETE") 295 .headers(headersMap) 296 .responseFormat(ResponseFormat.NO_CONTENT) 297 .auth(this.auth) 298 .networkSession(this.networkSession) 299 .build()); 300 } 301 302 public Authentication getAuth() { 303 return auth; 304 } 305 306 public NetworkSession getNetworkSession() { 307 return networkSession; 308 } 309 310 public static class Builder { 311 312 protected Authentication auth; 313 314 protected NetworkSession networkSession; 315 316 public Builder() {} 317 318 public Builder auth(Authentication auth) { 319 this.auth = auth; 320 return this; 321 } 322 323 public Builder networkSession(NetworkSession networkSession) { 324 this.networkSession = networkSession; 325 return this; 326 } 327 328 public TrashedWebLinksManager build() { 329 if (this.networkSession == null) { 330 this.networkSession = new NetworkSession(); 331 } 332 return new TrashedWebLinksManager(this); 333 } 334 } 335}