You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Utils/TimeSet.pm

110 lines
2.5 KiB

package NGCP::Panel::Utils::TimeSet;
use strict;
use warnings;
use Sipwise::Base;
use NGCP::Panel::Utils::DateTime;
sub delete_timesets {
my %params = @_;
my($c, $timeset) = @params{qw/c timeset/};
$timeset->delete();
}
sub update_timesets {
my %params = @_;
my($c, $timeset, $resource) = @params{qw/c timeset resource/};
$timeset->update({
name => $resource->{name},
reseller_id => $resource->{reseller_id},
})->discard_changes;
$timeset->time_periods->delete;
for my $t ( @{$resource->{times} } ) {
$timeset->create_related("time_periods", {
%{ $t },
});
}
}
sub create_timesets {
my %params = @_;
my($c, $resource) = @params{qw/c resource/};
my $schema = $c->model('DB');
my $timeset = $schema->resultset('voip_time_sets')->create({
name => $resource->{name},
reseller_id => $resource->{reseller_id},
});
for my $t ( @{$resource->{times}} ) {
$timeset->create_related("time_periods", {
%{ $t },
});
}
return $timeset;
}
sub get_timeset {
my %params = @_;
my($c, $timeset, $date_mysql_format) = @params{qw/c timeset date_mysql_format/};
my $resource = { $timeset->get_inflated_columns };
my @periods;
for my $period ($timeset->time_periods->all) {
my $period_infl = { $period->get_inflated_columns, };
delete @{ $period_infl }{'time_set_id', 'id'};
if (!$date_mysql_format) {
foreach my $date_key (qw/start end until/) {
if (defined $period_infl->{$date_key}) {
$period_infl->{$date_key} = NGCP::Panel::Utils::DateTime::from_mysql_to_js($period_infl->{$date_key});
}
}
}
for my $k (keys %{ $period_infl }) {
delete $period_infl->{$k} unless defined $period_infl->{$k};
}
push @periods, $period_infl;
}
$resource->{times} = \@periods;
return $resource;
}
1;
=head1 NAME
NGCP::Panel::Utils::TimeSet
=head1 DESCRIPTION
A temporary helper to manipulate resellers data
=head1 METHODS
=head2 update_timesets
Update timesets database data
=head2 create_timesets
Create timesets database data
=head2 get_timesets
Get timesets data from database to show to the user
=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: