<?php
namespace Acme\StoreBundle\Controller;


use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Acme\StoreBundle\Document\Product;
use Symfony\Component\HttpFoundation\Response;


//require_once 'xmlrpc/xmlrpc.php';
class DefaultController extends Controller
{
    
    public function indexAction()
    {
        return $this->render('AcmeStoreBundle:Default:index.html.twig', array('name' => "Binh"));
    }
    
    public function createAction() {
        $repository = $this->get('doctrine_mongodb')
                            ->getManager()
                            ->getRepository('AcmeStoreBundle:Product');
        $product = $repository->findOneBy(array('name' => 'A Foo Bar', 'price' => 19.99));
        var_dump($product);
        $dbname = 'officience';
        $user = 'quanghien.tran';
        $pwd = '123456';
        $url = 'http://172.16.0.153:8069';
        
        $sock = new \xmlrpc_client("http://172.16.0.153:8069/xmlrpc/common");
        
        $sock_msg = new \xmlrpcmsg('login');
        $sock_msg->addParam(new \xmlrpcval($dbname, "string"));
        $sock_msg->addParam(new \xmlrpcval($user, "string"));
        $sock_msg->addParam(new \xmlrpcval($pwd, "string"));
        $sock_resp = $sock->send($sock_msg);

        if ($sock_resp->errno != 0){
        echo  'error';
        }else{

        $sock_val = $sock_resp->value();
        
        $user_id = $sock_val->scalarval();
        }
        
        $client = new \xmlrpc_client("http://172.16.0.153:8069/xmlrpc/object");


        $key = array(new \xmlrpcval
                    (array(new \xmlrpcval('id' , "string"), 
                           new \xmlrpcval('>',"string"), // operator
                           new \xmlrpcval(0,"int")),"array"             ),
                );   

         $msg = new \xmlrpcmsg('execute');
         $msg->addParam(new \xmlrpcval($dbname, "string"));
         $msg->addParam(new \xmlrpcval($user_id, "int"));
         $msg->addParam(new \xmlrpcval($pwd, "string"));
         $msg->addParam(new \xmlrpcval('hr.department', "string"));
         $msg->addParam(new \xmlrpcval("search", "string"));
         $msg->addParam(new \xmlrpcval($key, "array"));

         $resp = $client->send($msg);
         $resp_val = $resp->value();
         $resp_ids = $resp_val->scalarval(); 
         //print_r($resp_ids);
         $applicant_id = $resp_ids[0]->me;
         //print_r($applicant_id);
         //read email of this applicant
        $id_list[0]= new \xmlrpcval(3, 'int');
        $key = array(new \xmlrpcval('member_ids', 'int'),
                new \xmlrpcval('name', "string")); 

        $msg = new \xmlrpcmsg('execute');
        $msg->addParam(new \xmlrpcval($dbname, "string"));
        $msg->addParam(new \xmlrpcval($user_id, "int"));
        $msg->addParam(new \xmlrpcval($pwd, "string"));
        $msg->addParam(new \xmlrpcval("hr.department", "string"));
        $msg->addParam(new \xmlrpcval("read", "string")); 
        $msg->addParam(new \xmlrpcval($resp_ids, "array"));
        $msg->addParam(new \xmlrpcval($key, "array"));
        $resp = $client->send($msg);
        $val = $resp->value();
        $ids = $val->scalarval();        
        //$id = $ids[1]->me;
        //print_r($ids);
        foreach ($ids as $id)
        {   
            $id = $id->me;
            print_r($id["struct"]["name"]->me);
            print_r($id["struct"]["id"]->me);
        }
        
        //$email = $id["struct"]["email_from"]->me["string"];
        //echo "email...$email";
        

        return new Response('Created product id ');
    }

}
