package eu.dnetlib;

import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

/**
 * Created by claudio on 30/11/2016.
 */
@RestController
public class EndpointDocController {

	@Autowired
	private List<RequestMappingHandlerMapping> handlerMappings;

	@RequestMapping(value = "/endpointdoc", method = RequestMethod.GET)
	public Set<String> show() {
		return handlerMappings.stream()
				.map(r -> r.getHandlerMethods().entrySet().stream()
					.map(k -> k.getKey())
					.map(i -> i.toString()))
				.reduce(Stream::concat)
				.orElseGet(Stream::empty)
				.collect(Collectors.toSet());
	}

}
