added CRM link
[APKPM.git] / lib / APKPM / CRM.pm
1 package APKPM::CRM;
2
3 use base qw(Gearman::Driver::Worker);
4 use Moose;
5 use Time::HiRes;
6 use Data::Dump qw(dump);
7
8 with 'APKPM::Config';
9 with 'APKPM::Gearman';
10
11 require RPC::XML;
12 require RPC::XML::Client;
13
14 $RPC::XML::ENCODING = "utf-8"; # FIXME really used?
15
16 sub prefix { 'CRM_' }
17
18 sub process_name {
19         my ( $self, $orig, $job_name ) = @_;
20         warn "# process_name $orig $job_name\n";
21         return "$orig ($job_name)";
22 }
23
24 sub begin {
25         my ( $self, $job, $workload ) = @_;
26         warn "# begin ", dump( $workload );
27 }
28
29 sub username : Job : MinProcesses(1) : MaxProcesses(5) : Encode(e_json) {
30         my ( $self, $job, $workload ) = @_;
31         warn "# username ",dump($workload);
32         my $cli = RPC::XML::Client->new($self->config('crmxml'));
33         my $resp = $cli->send_request('search',RPC::XML::array->new(
34                 USERNAME => '%' . $workload . '%'
35         ));
36         return ref $resp ? $resp->value->[0] : { error => $resp };
37 }
38
39 1;