package mz.isctem.indexador.clt;

import java.util.Arrays;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.glassfish.jersey.client.ClientConfig;

import mz.isctem.indexador.Documento;

public class AdicionarDocumento {
	private static final int PORTO = 9090;

	private static final int TOTAL_DOCUMENTOS = 1000;

	public static void adicionarDocumento(Documento doc, String urlIndexador) throws Exception {
		ClientConfig config = new ClientConfig();
		Client client = ClientBuilder.newClient(config);

		WebTarget target = client.target(urlIndexador);

		System.err.println( target.toString() );
		String id = doc.id();

		Response response = target.path(id).request().post(Entity.entity(doc, MediaType.APPLICATION_JSON));				
		System.out.println("O servidor retornou: " + response.getStatus());
	}

	public static void main(String[] args) throws Exception {

		String urlIndexador = String.format("http://localhost:%d/v1/indexador/", PORTO); 

		for( int i = 0; i < TOTAL_DOCUMENTOS; i++ ) {
			String url = "http://url-de-um-documento/" + Long.toHexString(System.nanoTime());
			String[] termos = new String[] {"termo1", "termo2", "termo3"};
			Documento doc = new Documento( url, Arrays.asList(termos));
			
			adicionarDocumento(doc, urlIndexador);
			Thread.sleep(100);
		}
	}
}
