API-PleskExpand

 view release on metacpan or  search on metacpan

lib/API/PleskExpand/Accounts.pm  view on Meta::CPAN

                $select = create_node( 'server_auto', create_node( $params{'select'}, '') . 
                    create_node( 'group_id', $params{'group_id'} )  
                );
            } elsif ( $params{'server_keyword'} ) {
                $select = create_node( 'server_auto', create_node( $params{'select'}, '')  ). 
                    create_node( 'server_keyword', $params{'server_keyword'} );
            } else {
                 $select = create_node( 'server_auto', create_node( $params{'select'}, '') );
            }
        } else {

            if ( $params{'server_id'} ) {
                $select = create_node( 'server_id', $params{'server_id'} );
            } else {
                return ''; # server_id required!
            }
        }
        
        return create_node( 'add_use_template',
            generate_info_block('gen_info', %{ $params{'general_info'} } ) . '<!-- create_client -->' . $template . $select);

    } else {
        return '';  # not enought data
    }
}


# Parse XML response
# STATIC
sub create_response_parse {
    return abstract_parser('add_use_template', +shift, [ ]);
}


=item modify(%params)

Changes the account params.

Params:
  general_info -- hashref`s with new user details
  id           -- client id 


Return:

  $VAR1 = bless( {
    'answer_data' => [ {
        'server_id'       => '1',
        'status'          => 'ok',
        'tmpl_id'         => '1',
        'id'              => '15',
        'plesk_client_id' => '384',
        'login'           => 'suxdffffxx'
    } ],
        'error_codes' => ''
  }, 'API::Plesk::Response' );


Example (client deactivation):

  print Dumper $client->Accounts->modify(
    id => 10, 
    general_info => { status => 16 }
  );

=cut

# Modify element
# STATIC
sub modify {
    my %params = @_;
    
    if (ref $params{'general_info'} eq 'HASH') {

        my $filter = '';

        if ($params{'id'}) {
            $filter = create_filter(login_field_name => 'id', id => $params{'id'});
        } else {
            return ''; # filter required!
        }
    

        return create_node('set', $filter . '<!-- modify_client -->' . create_node('values',
            generate_info_block('gen_info', %{ $params{'general_info'} } ) ) );

    } else {
        return ''; # general_info field required !
    }

    # выключение клиента
    my $data=<<DOC;
<?xml version="1.0"?>
<packet version="0.0.0.110">
    <set>
        <filter>
            <id>1</id>
        </filter>
        <values>
            <gen_info>
                <status>16</status>
            </gen_info>
        </values>
    </set>
</packet
DOC
    # включаем клиента
    my $data1 = <<DOC;
<?xml version="1.0"?>
<packet version="0.0.0.110">
    <set>
       <filter>
            <id>1</id>
        </filter>
        <values>
            <gen_info>
                <status>0</status>
            </gen_info>
        </values>
    </set>
</packet>
DOC
}


# SET response handler
# STATIC
sub modify_response_parse {
    return abstract_parser('set', +shift, []);
}


=item delete(%params)

Delete accounts.

Params:
  id -- client id in Plesk

Return:

    $VAR1 = bless( {
        'answer_data' => [ {
            'server_id' => '1',
            'status' => 'ok',
            'id' => '15'
        } ],
        'error_codes' => ''
    }, 'API::Plesk::Response' );


Example:
  print Dumper $client->Accounts->delete( id => 11 );

=back

=cut


# Delete element
# STATIC( %args )
sub delete {
    my %params = @_;

    my $filter = '';

    if ($params{'id'}) {
        $filter = create_filter( id => $params{'id'});
    } else {
        return '';  # id required!
    }
    

    return create_node('del', '<!-- del_client -->' . $filter);
}


# DEL response handler
# STATIC
sub delete_response_parse {
    return abstract_parser('del', +shift, [ ]);
}


# Get all element data
# STATIC
sub get {
    my %params = @_;

    unless ($params{all}) {
        return '';
    }

    return create_node( 'get',
        create_node('filter', '') . create_node( 'dataset', create_node('gen_info') )
    ) . '<!-- get_client -->';
}


# GET response handler
# STATIC
sub get_response_parse {
    my $answer = abstract_parser('get', +shift, [ ], 'system_error' );

    if (ref $answer eq 'ARRAY') {
        for my $domain (@$answer) {
            $domain->{data} = xml_extract_values($domain->{data} =~ m#<gen_info>(.*?)</gen_info>#);
        }
    } elsif ($answer) {
        $answer->{data} = xml_extract_values($answer->{data} =~ m#<gen_info>(.*?)</gen_info>#);
    }

    return $answer;



( run in 1.872 second using v1.01-cache-2.11-cpan-39bf76dae61 )