diff --git a/lib/NGCP/Panel/Controller/API/Resellers.pm b/lib/NGCP/Panel/Controller/API/Resellers.pm index b7e6c69340..ba1aade165 100644 --- a/lib/NGCP/Panel/Controller/API/Resellers.pm +++ b/lib/NGCP/Panel/Controller/API/Resellers.pm @@ -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."); diff --git a/lib/NGCP/Panel/Controller/Reseller.pm b/lib/NGCP/Panel/Controller/Reseller.pm index 89f63b080a..7c759699f7 100644 --- a/lib/NGCP/Panel/Controller/Reseller.pm +++ b/lib/NGCP/Panel/Controller/Reseller.pm @@ -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; } } diff --git a/lib/NGCP/Panel/Utils/Reseller.pm b/lib/NGCP/Panel/Utils/Reseller.pm new file mode 100644 index 0000000000..14b5154a0f --- /dev/null +++ b/lib/NGCP/Panel/Utils/Reseller.pm @@ -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: