how to remove customeruser from some service via web service

Moderator: crythias

Post Reply
denbagusjkt
Znuny newbie
Posts: 23
Joined: 07 Jun 2012, 09:20
Znuny Version: 3.1.5
Real Name: denbagus
Company: indolabsoft

how to remove customeruser from some service via web service

Post by denbagusjkt »

i know how to add service member for customer user, that there is method CustomerUserServiceMemberAdd on Kernel::System::Service Object, but i cannot find some method to remove service member from this file. Is there any option to do that? since, i want to syncronice my php application with otrs, i need to do this.

I found this code :

Code: Select all

# delete existing relation
    return if !$Self->{DBObject}->Do(
        SQL => 'DELETE FROM service_customer_user WHERE customer_user_login = ? AND service_id = ?',
        Bind => [ \$Param{CustomerUserLogin}, \$Param{ServiceID} ],
    );
inside CustomerUserServiceMemberAdd method. but i don`t understand what the meaning of !$Self->{DBObject}->Do.
denbagusjkt
Znuny newbie
Posts: 23
Joined: 07 Jun 2012, 09:20
Znuny Version: 3.1.5
Real Name: denbagus
Company: indolabsoft

Re: how to remove customeruser from some service via web ser

Post by denbagusjkt »

i create new method on Kernel::System::Service.pm to delete old relation of service and customer user. The code is like this :

Code: Select all

=item CustomerUserServiceMemberDelete()

to delete a member to a service

    $ServiceObject->CustomerUserServiceMemberDelete(
        CustomerUserLogin => 'Test1',
        ServiceID         => 6,
        Active            => 1,
    );

=cut

sub CustomerUserServiceMemberDelete {
    my ( $Self, %Param ) = @_;

    # check needed stuff
    for my $Argument (qw(CustomerUserLogin ServiceID)) {
        if ( !$Param{$Argument} ) {
            $Self->{LogObject}->Log(
                Priority => 'error',
                Message  => "Need $Argument!",
            );
            return;
        }
    }   

    # return if relation is not active
    return if !$Param{Active};
    
     # delete existing relation
    return $Self->{DBObject}->Do(
        SQL => 'DELETE FROM service_customer_user WHERE customer_user_login = ? AND service_id = ?',
        Bind => [ \$Param{CustomerUserLogin}, \$Param{ServiceID} ],
    );    
}
I`am new in perl and otrs, is safe to write code on Kernel::System::* File?
denbagusjkt
Znuny newbie
Posts: 23
Joined: 07 Jun 2012, 09:20
Znuny Version: 3.1.5
Real Name: denbagus
Company: indolabsoft

Re: how to remove customeruser from some service via web ser

Post by denbagusjkt »

my application working perfectly after adding that code to remove old service and customer user relation. but i don`t know if my otrs is updated to new version. maybe i need to add new method again on new otrs source code.

one more, i thing i find some little missing on otrs documentation API. I use CustomerUserUpdate() method on Kernel::System::CustomerUser object. My application says : "need UserCustomerID!", but there is nothing some param like that on otrs 3.1 documentation API.

more advice is welcome. :)
Post Reply