MT#12499 Apply default email templates to the created reseller

And delete on the reseller deletion

Change-Id: Iab7fdef6c1cadeb7a3b8d2d890c1ee271646558e
changes/56/1656/3
Irina Peshinskaya 10 years ago
parent 0773488463
commit 4970dd68fa

@ -8,6 +8,7 @@ use HTTP::Headers qw();
use HTTP::Status qw(:constants);
use MooseX::ClassAttribute qw(class_has);
use NGCP::Panel::Utils::DateTime;
use NGCP::Panel::Utils::Reseller;
use Path::Tiny qw(path);
BEGIN { extends 'Catalyst::Controller::ActionRole'; }
require Catalyst::ActionRole::ACL;
@ -180,6 +181,7 @@ sub POST :Allow {
my $reseller;
try {
$reseller = $schema->resultset('resellers')->create($resource);
NGCP::Panel::Utils::Reseller::create_email_templates( c => $c, reseller => $reseller );
} catch($e) {
$c->log->error("failed to create reseller: $e"); # TODO: user, message, trace, ...
$self->error($c, HTTP_INTERNAL_SERVER_ERROR, "Failed to create reseller.");

@ -11,6 +11,7 @@ use NGCP::Panel::Utils::Contract;
use NGCP::Panel::Utils::DateTime;
use NGCP::Panel::Utils::Message;
use NGCP::Panel::Utils::Navigation;
use NGCP::Panel::Utils::Reseller;
sub auto :Private {
my ($self, $c) = @_;
@ -87,6 +88,7 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) :Does(ACL) :AC
$form->params->{contract_id} = delete $form->params->{contract}->{id};
delete $form->params->{contract};
my $reseller = $c->model('DB')->resultset('resellers')->create($form->params);
NGCP::Panel::Utils::Reseller::create_email_templates( c => $c, reseller => $reseller );
delete $c->session->{created_objects}->{contract};
$c->session->{created_objects}->{reseller} = { id => $reseller->id };
@ -324,6 +326,7 @@ sub _handle_reseller_status_change {
$reseller->voip_rewrite_rule_sets->delete_all;
#delete autoprov_devices
$reseller->autoprov_devices->delete_all;
$reseller->email_templates->delete_all;
}
}

@ -0,0 +1,44 @@
package NGCP::Panel::Utils::Reseller;
use strict;
use warnings;
use Sipwise::Base;
sub create_email_templates{
my %params = @_;
my($c, $reseller) = @params{qw/c reseller/};
foreach ( $c->model('DB')->resultset('email_templates')->search_rs({ 'reseller_id' => undef })->all){
my $email_template = { $_->get_inflated_columns };
delete $email_template->{id};
$email_template->{reseller_id} = $reseller->id;
$c->model('DB')->resultset('email_templates')->create($email_template);
}
}
1;
=head1 NAME
NGCP::Panel::Utils::Reseller
=head1 DESCRIPTION
A temporary helper to manipulate resellers data
=head1 METHODS
=head2 create_email_templates
Apply default email templates to newly created reseller
=head1 AUTHOR
Irina Peshinskaya
=head1 LICENSE
This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
# vim: set tabstop=4 expandtab:
Loading…
Cancel
Save