require RPC::XML;
require RPC::XML::Client;
+use Encode;
+use Redis;
-$RPC::XML::ENCODING = "utf-8"; # FIXME really used?
+#$RPC::XML::ENCODING = "utf-8"; # FIXME really used?
sub prefix { 'CRM_' }
warn "# begin ", dump( $workload );
}
-sub search : Job : MinProcesses(1) : MaxProcesses(5) : Encode(e_json) {
+sub search : Job : Encode(e_json_encode) {
my ( $self, $job, $workload ) = @_;
warn "# search ",dump($workload);
my $cli = RPC::XML::Client->new($self->config('crmxml'));
warn "RPC::XML $field $value";
my $resp = $cli->send_request('search',RPC::XML::array->new( $field => $value ));
+
+ my $redis = Redis->new;
+ map {
+ my $key = 'CRM.' . $_->{USERNAME};
+ $redis->set( $key => $self->e_json($_) );
+ $redis->expire( $key => 15 * 60 );
+ } @{ $resp->value->[0] };
+
return ref $resp ? $resp->value->[0] : { error => $resp };
}
+sub e_json_encode {
+ my ($self,$data) = @_;
+ my $json = $self->e_json($data);
+ $json = Encode::decode('utf-8', $json);
+ Encode::from_to($json,'cp1250', 'utf-8');
+ return $json;
+}
+
1;