package com.pugh.sockso.web.action.api; import com.pugh.sockso.music.Album; import com.pugh.sockso.templates.api.TAlbum; import com.pugh.sockso.web.BadRequestException; import com.pugh.sockso.web.Request; import java.io.IOException; import java.sql.SQLException; public class AlbumAction extends BaseApiAction { /** * Shows a requested album by ID * * @throws BadRequestException * @throws IOException * @throws SQLException * */ public void handleRequest() throws BadRequestException, IOException, SQLException { final Album album = Album.find( getDatabase(), Integer.parseInt(getRequest().getUrlParam(2)) ); if ( album == null ) { throw new BadRequestException( "Invalid album id" ); } showAlbum( album ); } /** * Write album template to response * * @param album * * @throws IOException * */ protected void showAlbum( final Album album ) throws IOException { TAlbum tpl = new TAlbum(); tpl.setAlbum( album ); getResponse().showJson( tpl.makeRenderer() ); } /** * Indicates if the action can handle the request * * @param req * * @return * */ public boolean canHandle( final Request req ) { return req.getParamCount() == 3 && req.getUrlParam(1).equals( "albums" ) && isInteger( req.getUrlParam(2) ); } }