function claimToElement()

in SampleIntegrations/SampleBots/NodeJS/ExpenseBot/app.js [561:607]


function claimToElement(claim, viewerId) {

    var subtitle = 'Amount: ' + claim.amount +
    '\nStatus: ' + claim.status;
    if(claim.submitterName)
        subtitle += '\nSender: ' + claim.submitterName;
    if(claim.approverName)
        subtitle += '\nApprover: ' + claim.approverName;

    var element = {
        title: claim.comment,
        subtitle: subtitle,
        image_url: claim.receipt
    };
    var buttons = [];
    if(claim.status == 'unapproved' && claim.approver == viewerId) {
        buttons.push({
            type: 'postback',
            title: '✔︎ Approve',
            payload: 'APPROVE_CLAIM:' + claim.id
        });
        buttons.push({
            type: 'postback',
            title: '✘ Reject',
            payload: 'REJECT_CLAIM:' + claim.id
        });
    }
    if(claim.status == 'unsubmitted' && claim.submitter == viewerId) {
        buttons.push({
            type: 'postback',
            title: '✔︎ Submit',
            payload: 'SUBMIT_CLAIM:' + claim.id
        });
        buttons.push({
            type: 'postback',
            title: '✎ Edit',
            payload: 'EDIT_CLAIM:' + claim.id
        });
        buttons.push({
            type: 'postback',
            title: '✘ Delete',
            payload: 'DELETE_CLAIM:' + claim.id
        });
    }
    if( buttons.length > 0 ) element.buttons = buttons;
    return element;
}