From 39fbd35d58ba6bedd6c8af1f4b0c25a166acf3c3 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 15 May 2015 12:22:44 -0700 Subject: add self-service provision_pbx, RT#34939 --- FS/FS/ClientAPI/MyAccount.pm | 18 ++++++++++++++++++ FS/FS/ClientAPI_XMLRPC.pm | 1 + 2 files changed, 19 insertions(+) (limited to 'FS') diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index c89b7bb3f..a6f8d371d 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -2732,6 +2732,21 @@ sub provision_phone { { 'bulkdid' => [ @bulkdid ], 'svc' => $error->{'svc'} } } +sub provision_pbx { + my $p = shift; + warn "provision_pbx called\n" + if $DEBUG; + + warn "provision_pbx calling _provision\n" + if $DEBUG; + _provision( 'FS::svc_pbx', + [qw(id title max_extensions max_simultaneous ip_addr)], + [qw(id title max_extensions max_simultaneous ip_addr)], + $p, + @_ + ); +} + sub provision_acct { my $p = shift; warn "provision_acct called\n" @@ -2797,6 +2812,9 @@ sub _provision { my $part_svc = qsearchs('part_svc', { 'svcpart' => $p->{'svcpart'} } ) or return { 'error' => "unknown svcpart $p->{'svcpart'}" }; + return { error=> 'svcpart '. $p->{'svcpart'}. " is not a $class definition" } + if $class ne 'FS::'. $part_svc->svcdb; + warn "creating $class record\n" if $DEBUG; my $svc_x = $class->new( { diff --git a/FS/FS/ClientAPI_XMLRPC.pm b/FS/FS/ClientAPI_XMLRPC.pm index 757f76490..04aee290b 100644 --- a/FS/FS/ClientAPI_XMLRPC.pm +++ b/FS/FS/ClientAPI_XMLRPC.pm @@ -156,6 +156,7 @@ sub ss2clientapi { 'part_svc_info' => 'MyAccount/part_svc_info', 'provision_acct' => 'MyAccount/provision_acct', 'provision_phone' => 'MyAccount/provision_phone', + 'provision_pbx' => 'MyAccount/provision_pbx', 'provision_external' => 'MyAccount/provision_external', 'unprovision_svc' => 'MyAccount/unprovision_svc', 'myaccount_passwd' => 'MyAccount/myaccount_passwd', -- cgit v1.2.1