package com.example.demo.ffprogram.controllers;

import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;

import com.example.demo.ffprogram.dao.ContactInfoDao;
import com.example.demo.ffprogram.dao.FlierDao;
import com.example.demo.ffprogram.domain.ContactInfo;
import com.example.demo.ffprogram.domain.Flier;

@Controller
public class FlierController
{
	private FlierDao flierDao;
	private ContactInfoDao contactDao;

	@Autowired
	public FlierController(FlierDao flierDao, ContactInfoDao contactDao)
	{
		this.flierDao = flierDao;
		this.contactDao = contactDao;
	}

	@RequestMapping(value = "/fliers", method = RequestMethod.GET)
	public @ResponseBody List<Flier> getFliers(HttpServletResponse response)
	{
		response.addHeader("Access-Control-Allow-Origin", "*");
		return flierDao.getAllFliers();
	}

	@RequestMapping(value = "/contacts", method = RequestMethod.GET)
	public @ResponseBody ContactInfo getContactsForFirstFlier()
	{
		return contactDao.getContactsForFlier(1L);
	}
	
	@RequestMapping(value="/fliers/{id}", method=RequestMethod.GET)
	public @ResponseBody Flier getFlierById(long id)
	{
		return flierDao.getFlierById(id);
	}

	@SuppressWarnings("serial")
	@ResponseStatus(value = HttpStatus.NOT_FOUND)
	private class ResourceNotFoundException extends RuntimeException
	{
	}
}
