File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -41,6 +41,9 @@ public class SendGrid implements SendGridAPI {
4141 /** The number of milliseconds to sleep between retries. */
4242 private int rateLimitSleep ;
4343
44+ /** The subuser to be impersonated. */
45+ private String subuser ;
46+
4447 /**
4548 * Construct a new SendGrid API wrapper.
4649 * @param apiKey is your SendGrid API Key: https://app.sendgrid.com/settings/api_keys
@@ -193,6 +196,31 @@ public void setRateLimitSleep(int rateLimitSleep) {
193196 this .rateLimitSleep = rateLimitSleep ;
194197 }
195198
199+ /**
200+ * Impersonate subuser for subsequent requests
201+ * @param subuser the subuser to be impersonated
202+ */
203+ public void addImpersonateSubuser (String subuser ) {
204+ this .subuser = subuser ;
205+ this .addRequestHeader ("on-behalf-of" , subuser );
206+ }
207+
208+ /**
209+ * Stop Impersonating the subuser
210+ */
211+ public void removeImpersonateSubuser () {
212+ this .subuser = null ;
213+ this .removeRequestHeader ("on-behalf-of" );
214+ }
215+
216+ /**
217+ * Get the impersonated subuser or null if empty
218+ * @return the impersonated subuser
219+ */
220+ public String getImpersonateSubuser () {
221+ return this .subuser ;
222+ }
223+
196224 /**
197225 * Makes the call to the SendGrid API, override this method for testing.
198226 * @param request the request to make.
Original file line number Diff line number Diff line change @@ -3406,4 +3406,33 @@ public void test_whitelabel_links__link_id__subuser_post() throws IOException {
34063406 Assert .assertEquals (200 , response .getStatusCode ());
34073407 }
34083408
3409+ @ Test
3410+ public void test_add_impersonate_subuser () {
3411+ SendGrid sg = new SendGrid (SENDGRID_API_KEY );
3412+
3413+ sg .addImpersonateSubuser ("subusername" );
3414+ Assert .assertEquals (sg .getRequestHeaders ().get ("on-behalf-of" ), "subusername" );
3415+ }
3416+
3417+ @ Test
3418+ public void test_remove_impersonate_subuser () {
3419+ SendGrid sg = new SendGrid (SENDGRID_API_KEY );
3420+
3421+ sg .addImpersonateSubuser ("subusername" );
3422+ Assert .assertEquals (sg .getRequestHeaders ().get ("on-behalf-of" ), "subusername" );
3423+
3424+ sg .removeImpersonateSubuser ();
3425+ Assert .assertEquals (sg .getRequestHeaders ().get ("on-behalf-of" ), null );
3426+ }
3427+
3428+ @ Test
3429+ public void test_get_impersonate_subuser () {
3430+ SendGrid sg = new SendGrid (SENDGRID_API_KEY );
3431+
3432+ sg .addImpersonateSubuser ("subusername" );
3433+ Assert .assertEquals (sg .getImpersonateSubuser (), "subusername" );
3434+
3435+ sg .removeImpersonateSubuser ();
3436+ Assert .assertEquals (sg .getImpersonateSubuser (), null );
3437+ }
34093438}
You can’t perform that action at this time.
0 commit comments