001package com.box.sdkgen.managers.signtemplates; 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.signtemplate.SignTemplate; 015import com.box.sdkgen.schemas.signtemplates.SignTemplates; 016import com.box.sdkgen.serialization.json.JsonManager; 017import java.util.Map; 018 019public class SignTemplatesManager { 020 021 public Authentication auth; 022 023 public NetworkSession networkSession; 024 025 public SignTemplatesManager() { 026 this.networkSession = new NetworkSession(); 027 } 028 029 protected SignTemplatesManager(Builder builder) { 030 this.auth = builder.auth; 031 this.networkSession = builder.networkSession; 032 } 033 034 /** Gets Box Sign templates created by a user. */ 035 public SignTemplates getSignTemplates() { 036 return getSignTemplates(new GetSignTemplatesQueryParams(), new GetSignTemplatesHeaders()); 037 } 038 039 /** 040 * Gets Box Sign templates created by a user. 041 * 042 * @param queryParams Query parameters of getSignTemplates method 043 */ 044 public SignTemplates getSignTemplates(GetSignTemplatesQueryParams queryParams) { 045 return getSignTemplates(queryParams, new GetSignTemplatesHeaders()); 046 } 047 048 /** 049 * Gets Box Sign templates created by a user. 050 * 051 * @param headers Headers of getSignTemplates method 052 */ 053 public SignTemplates getSignTemplates(GetSignTemplatesHeaders headers) { 054 return getSignTemplates(new GetSignTemplatesQueryParams(), headers); 055 } 056 057 /** 058 * Gets Box Sign templates created by a user. 059 * 060 * @param queryParams Query parameters of getSignTemplates method 061 * @param headers Headers of getSignTemplates method 062 */ 063 public SignTemplates getSignTemplates( 064 GetSignTemplatesQueryParams queryParams, GetSignTemplatesHeaders headers) { 065 Map<String, String> queryParamsMap = 066 prepareParams( 067 mapOf( 068 entryOf("marker", convertToString(queryParams.getMarker())), 069 entryOf("limit", convertToString(queryParams.getLimit())))); 070 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 071 FetchResponse response = 072 this.networkSession 073 .getNetworkClient() 074 .fetch( 075 new FetchOptions.Builder( 076 String.join( 077 "", 078 this.networkSession.getBaseUrls().getBaseUrl(), 079 "/2.0/sign_templates"), 080 "GET") 081 .params(queryParamsMap) 082 .headers(headersMap) 083 .responseFormat(ResponseFormat.JSON) 084 .auth(this.auth) 085 .networkSession(this.networkSession) 086 .build()); 087 return JsonManager.deserialize(response.getData(), SignTemplates.class); 088 } 089 090 /** 091 * Fetches details of a specific Box Sign template. 092 * 093 * @param templateId The ID of a Box Sign template. Example: 094 * "123075213-7d117509-8f05-42e4-a5ef-5190a319d41d" 095 */ 096 public SignTemplate getSignTemplateById(String templateId) { 097 return getSignTemplateById(templateId, new GetSignTemplateByIdHeaders()); 098 } 099 100 /** 101 * Fetches details of a specific Box Sign template. 102 * 103 * @param templateId The ID of a Box Sign template. Example: 104 * "123075213-7d117509-8f05-42e4-a5ef-5190a319d41d" 105 * @param headers Headers of getSignTemplateById method 106 */ 107 public SignTemplate getSignTemplateById(String templateId, GetSignTemplateByIdHeaders headers) { 108 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 109 FetchResponse response = 110 this.networkSession 111 .getNetworkClient() 112 .fetch( 113 new FetchOptions.Builder( 114 String.join( 115 "", 116 this.networkSession.getBaseUrls().getBaseUrl(), 117 "/2.0/sign_templates/", 118 convertToString(templateId)), 119 "GET") 120 .headers(headersMap) 121 .responseFormat(ResponseFormat.JSON) 122 .auth(this.auth) 123 .networkSession(this.networkSession) 124 .build()); 125 return JsonManager.deserialize(response.getData(), SignTemplate.class); 126 } 127 128 public Authentication getAuth() { 129 return auth; 130 } 131 132 public NetworkSession getNetworkSession() { 133 return networkSession; 134 } 135 136 public static class Builder { 137 138 protected Authentication auth; 139 140 protected NetworkSession networkSession; 141 142 public Builder() {} 143 144 public Builder auth(Authentication auth) { 145 this.auth = auth; 146 return this; 147 } 148 149 public Builder networkSession(NetworkSession networkSession) { 150 this.networkSession = networkSession; 151 return this; 152 } 153 154 public SignTemplatesManager build() { 155 if (this.networkSession == null) { 156 this.networkSession = new NetworkSession(); 157 } 158 return new SignTemplatesManager(this); 159 } 160 } 161}