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/Controller/API/TimeSetsItem.pm

59 lines
2.1 KiB

package NGCP::Panel::Controller::API::TimeSetsItem;
use NGCP::Panel::Utils::Generic qw(:all);
use Sipwise::Base;
use parent qw/NGCP::Panel::Role::EntitiesItem NGCP::Panel::Role::API::TimeSets/;
use HTTP::Status qw(:constants);
__PACKAGE__->set_config({
allowed_roles => {
Default => [qw/admin reseller/],
Journal => [qw/admin reseller/],
},
backward_allow_empty_upload => 1,
PATCH => { ops => [qw/add replace remove copy/] },
PUT => {
'ContentType' => ['multipart/form-data','application/json'],#,
#'Uploads' => {'calendarfile' => [NGCP::Panel::Utils::TimeSet::CALENDAR_MIME_TYPE]},
#perl -e 'use File::Type; my $ft = File::Type->new();print $ft->mime_type("/root/VMHost/data/test_from_form_1.ics");'
# =====> application/x-awk
'Uploads' => ['calendarfile'],
},
GET => {
#first element of array is default, if no accept header was received.
'ReturnContentType' => [ NGCP::Panel::Utils::TimeSet::CALENDAR_MIME_TYPE, 'application/json' ],
},
});
sub allowed_methods{
return [qw/GET OPTIONS HEAD PATCH PUT DELETE/];
}
sub journal_query_params {
my($self,$query_params) = @_;
return $self->get_journal_query_params($query_params);
}
sub get_journal_methods{
return [qw/handle_item_base_journal handle_journals_get handle_journalsitem_get handle_journals_options handle_journalsitem_options handle_journals_head handle_journalsitem_head/];
}
sub get_item_binary_data{
my($self, $c, $id, $item, $return_type) = @_;
#caller waits for: $data_ref,$mime_type,$filename
#while we will not strictly check Accepted header, if item can return only one type of the binary data
my $extension = mime_type_to_extension($return_type);
my $filename = NGCP::Panel::Utils::TimeSet::get_calendar_file_name(c => $c, timeset => $item ).'.'.$extension;
my $data_ref = NGCP::Panel::Utils::TimeSet::get_timeset_icalendar(
c => $c,
timeset => $item,
);
$$data_ref //= '';
return $data_ref, $return_type, $filename;
}
1;
# vim: set tabstop=4 expandtab: