trusona/trusona-server-sdk-java

View on GitHub
trusona-sdk-http/src/main/java/com/trusona/sdk/http/client/interceptor/TrusonaHeaderInterceptor.java

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package com.trusona.sdk.http.client.interceptor;

import com.trusona.sdk.http.Headers;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;

public class TrusonaHeaderInterceptor implements Interceptor {
  private static final String TRUSONA_USER_AGENT = "TrusonaServerSdk/1.0";
  private static final String DATE_FORMAT = "EEE, dd MMM YYYY  HH:mm:ss Z";
  private static final TimeZone GMT = TimeZone.getTimeZone("GMT");

  @Override
  public Response intercept(Chain chain) throws IOException {
    Request request = chain.request();

    return chain.proceed(request.newBuilder()
      .addHeader(Headers.USER_AGENT, TRUSONA_USER_AGENT)
      .addHeader(Headers.X_DATE, getDate())
      .build()
    );
  }

  private String getDate() {
    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.getDefault());
    dateFormat.setTimeZone(GMT);

    return dateFormat.format(calendar.getTime());
  }
}