package me.woemler.springblog.controllers;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.ServletContext;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @author woemler 
 * 
 * This controller class handles requests for special media pages, such as a gallery of public image
 *   thumbnails.
 */

@Controller
public class MediaController {

    private static Logger logger  = LoggerFactory.getLogger(MediaController.class);
    
    @Autowired
    private ServletContext servletContext;
    
    @RequestMapping(value="/media")
    public String media(ModelMap map){
        String contextPath = servletContext.getContextPath();
        String staticDir = "/static/img/public/";
        String staticPath = servletContext.getRealPath(staticDir);
        List<String> images = new ArrayList();
        File staticFileDir = new File(staticPath);
        if (staticFileDir.list() != null && staticFileDir.list().length > 0){
            for (String file: staticFileDir.list()){
                if (file.matches("[a-zA-Z0-9._-]+\\.(jpg|png|gif|svg)$")){
                    images.add(contextPath + staticDir + file);
                }
            }
        }
        map.addAttribute("images", images);
        return "media";
    }
    
}