Package com.music.web

Source Code of com.music.web.PagesController

/*
* Computoser is a music-composition algorithm and a website to present the results
* Copyright (C) 2012-2014  Bozhidar Bozhanov
*
* Computoser is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* Computoser is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Computoser.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.music.web;

import java.io.IOException;
import java.util.Arrays;

import javax.inject.Inject;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.music.model.persistent.PiecePack;
import com.music.service.NewsService;
import com.music.service.PiecePackService;

@Controller
public class PagesController {

    @Inject
    private NewsService newsService;

    @Inject
    private PiecePackService packService;

    @RequestMapping("/about")
    public String about() {
        return "about";
    }

    @RequestMapping("/signup")
    public String signup() {
        return "signup";
    }

    @RequestMapping("/info/imprint")
    public String imprint() {
        return "imprint";
    }

    @RequestMapping("/info/terms")
    public String terms() {
        return "terms";
    }

    @RequestMapping("/news")
    public String news(@RequestParam(required=false) Long id, Model model) {
        if (id == null) {
            model.addAttribute("news", newsService.getNews());
        } else {
            model.addAttribute("news", Arrays.asList(newsService.get(id)));
        }
        return "news";
    }

    @RequestMapping("/stockmusic")
    public String stockMusic(Model model) {
        model.addAttribute("packs", packService.getPiecePacks());
        return "stockpacks";
    }

    @RequestMapping("/pack/download")
    public void downloadPack(@RequestParam long id, HttpServletResponse response) throws IOException {
        PiecePack pack = packService.getPack(id);
        if (pack != null) {
            response.setContentType("application/zip");
            response.setHeader("Content-Disposition", "attachment; filename=" + pack.getName().replace(' ', '_').replace('/', '_') + ".zip;");
            packService.download(id, response.getOutputStream());
        }
    }
}
TOP

Related Classes of com.music.web.PagesController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.