Package com.pugh.sockso.web.action.api

Source Code of com.pugh.sockso.web.action.api.TrackAction

package com.pugh.sockso.web.action.api;

import com.pugh.sockso.music.Track;
import com.pugh.sockso.templates.api.TTrack;
import com.pugh.sockso.web.BadRequestException;
import com.pugh.sockso.web.Request;

import java.io.IOException;
import java.sql.SQLException;

public class TrackAction extends BaseApiAction {
   
    /**
     *  Indicates if this action can handle the request
     *
     *  @param req
     *
     *  @return
     *
     */
   
    @Override
    public boolean canHandle( final Request req ) {
      
        return req.getUrlParam( 1 ).equals( "tracks" )
            && isInteger( req.getUrlParam(2) );
      
    }
  
    /**
     *  Show the track info, or throw an exception if not found
     *
     *  @throws SQLException
     *  @throws BadRequestException
     *
     */
   
    @Override
    public void handleRequest() throws SQLException, BadRequestException, IOException {
      
        final Track track = Track.find(
            getDatabase(),
            Integer.parseInt( getRequest().getUrlParam(2) )
        );

        if ( track == null ) {
            throw new BadRequestException( "Track not found", 404 );
        }
       
        showTrack( track );
       
    }
   
    /**
     *  Show a track as JSON
     *
     *  @param track
     *
     *  @throws IOException
     *
     */
   
    protected void showTrack( final Track track ) throws IOException {
       
        final TTrack tpl = new TTrack();
        tpl.setTrack( track );
       
        getResponse().showJson( tpl.makeRenderer() );
       
    }
   
}
TOP

Related Classes of com.pugh.sockso.web.action.api.TrackAction

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.