#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package BookPub::Admin::Command::AjaxEditSaleFeed;
use strict;
use warnings;
use Data::Dumper;

use lib '/app/tools/bookpub/lib';
use lib '/app/tools/common/lib';
use Common::Preference;
use Common::Assert;
use Common::Client;

use BookPub::DB::Item::SaleFeed;
use BookPub::Admin::EditSaleFeedForm;

use RSApache::Response::XSLT;
use RSApache::Response::JSON;
use RSApache::Command::XMLCommand;

use base 'RSApache::Command::XMLCommand';

sub cmd      { return 'edit_sale_feed'; }
sub area     { return 'admin'; }
sub pageName { return ''; }

use constant kTemplate => "";

sub execute {
    my ($self) = @_;

    my $response = $self->SUPER::execute();
    return $response if $response;

    my $saleFeedID        = $self->getParam("SaleFeedID");
    my $saleFeedServiceID = $self->getParam("SaleFeedServiceID");

    my $form = BookPub::Admin::EditSaleFeedForm->new( saleFeedID => $saleFeedID, saleFeedServiceID => $saleFeedServiceID );

    if ( $form->assignCGIParams( 'Form', $self->getParams() ) ) {
        $form->save($saleFeedID);

        # We need to return a couple of pieces of data to the template
        #
        my $list       = $form->{SaleFeedList}{SaleFeed};
        my $updatedObj = $$list{$saleFeedID};

        my $dateModified = Common::Client::Current()->Locale()->formatDate( $updatedObj->{DateModified}->{_value} );

        return RSApache::Response::JSON->new( { status => 'success', dateModified => $dateModified } );
    } else {
        return RSApache::Response::JSON->new('failed to update item');
    }

}

1;
