Amplify - Mock Data Paging

by johnpapa

HTML

<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap-responsive.css">
<script src="https://raw.github.com/mennovanslooten/mockJSON/master/js/jquery.mockjson.js"></script>
<script src="https://raw.github.com/timrwood/moment/1.5.0/min/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/amplifyjs/1.1.0/amplify.min.js"></script>
<script>
//Note: Prevent focus from getting to Firebug Lite console
Firebug.CommandLine = null;
</script>

CSS

.well { margin-top: 15px; }

JavaScript

// Define what a getTweets request looks like... url, dataType, etc
amplify.request.define( "getTweets", "ajax", {
    url: "http://twitter.com/status/user_timeline/{userName}.json",
    dataType: "jsonp",
    type: "GET"
});

// Redefine the getTweets request with hard-coded data
amplify.request.define( "getTweets", function ( settings ) {
    settings.success([
        { id: 0, created_at: "Mon Apr 11 8:00:00 +0000 2012", text: "Test Tweet 1", favorited: false, retweeted: false, user: { name: "User 1" } },
        { id: 1, created_at: "Mon Apr 11 9:00:00 +0000 2012", text: "Test Tweet 2", favorited: true, retweeted: true, user: { name: "User 2" } },
        { id: 2, created_at: "Mon Apr 11 10:00:00 +0000 2012", text: "Test Tweet 3", favorited: false, retweeted: true, user: { name: "User 3" } },
        { id: 3, created_at: "Mon Apr 11 11:00:00 +0000 2012", text: "Test Tweet 4", favorited: true, retweeted: false, user: { name: "User 4" } },
        { id: 4, created_at: "Mon Apr 11 12:00:00 +0000 2012", text: "Test Tweet 5", favorited: true, retweeted: true, user: { name: "User 5" } },
    ]);    
});

// Redefine the getTweets request with prototype data
amplify.request.define( "getTweets", function ( settings ) {
    console.log( "settings.data", settings.data );
    var mockData = $.mockJSON.generateFromTemplate({
        "tweets|25-50": [{
            "id|+1": 0, 
            "created_at": "Mon Apr 11 @TIME_HH:@TIME_MM:@TIME_SS +0000 2012",
            "text": "@LOREM_IPSUM",
            "favorited|0-1": false,
            "retweeted|0-1": false,
            "user": { "name": "@MALE_FIRST_NAME @LAST_NAME" }
        }]
    });
    
    settings.success( mockData.tweets );  
});

// Request "getTweets" passing in necessary data which is used in URL substitution 
amplify.request({ 
    resourceId: "getTweets", 
    data: { userName: "elijahmanor", count: 25 }, 
    success: function( data, status ) {
        console.log( data );
    },
    error: function( data,...