#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package BookPub::Admin::Command::AjaxDeleteSaleFeedService;
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::DB::Item::SaleFeedFile;
use BookPub::DB::Item::SaleFeedService;

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

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

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

use constant kTemplate => "";

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

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

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

    my $saleFeedService = BookPub::DB::Item::SaleFeedService->Lookup( sale_feed_service_id => $saleFeedServiceID );

    if ($saleFeedService) {

        # Delete the sale feed service.
        $saleFeedService->delete();

        my $saleFeeds = BookPub::DB::Item::SaleFeed->GetAllBySaleFeedServiceID($saleFeedServiceID);

        while ( $saleFeeds->hasNext() ) {
            my $saleFeed      = $saleFeeds->next();
            my $saleFeedFiles = BookPub::DB::Item::SaleFeedFile->GetAllBySaleFeedID( $saleFeed->sale_feed_id );
            while ( $saleFeedFiles->hasNext() ) {
                my $saleFeedFile = $saleFeedFiles->next();

                # Delete the sale feed files.
                $saleFeedFile->delete();
            }

            # Delete the sale feeds.
            $saleFeed->delete();
        }

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

}

1;
