jbalter jbalter - 6 months ago 74
PHP Question

CLIO return just on matter number by display number

Clio seems to have no solution but to ask it here.
So here I go.

I have the display number and I want to query the Matter ID.
This does not seem to be possible unless I do I x-bulk query the loop throw the results.

Does anyone have a simple query to do this?

here is what I have for PHP so far.

function matter_one ( $token,$refresh_toke ) {
$header = 'Authorization: bearer '.$token."\r\n";
//echo $header."\r\n";
$offset = 0;
$url = 'https://app.clio.com/api/v4/matters.json?&fields=id,description,display_number';
//echo $url."\r\n";
$ch = curl_init();
//curl_setopt($ch, CURLOPT_VERBOSE, true); //used for trouble shooting.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resp = curl_exec($ch);
print "curl response is:" . $resp;
die();

Answer Source

if have 10,000 plus records you have to use bulk. this function works great at getting all the records. Then you can find what ever number you need.

function matter_ID_display ( $token,$refresh_toke ) {
            // this returns all the matter ID and display name

            //adding X-BULK
            $header = 'Authorization: bearer '.$token."\r\n"."X-BULK: true";
            //echo $header."\r\n";
            $offset = 0;
            $url = 'https://app.clio.com/api/v4/matters.json?offset='.$offset.'&fields=id,display_number';
            $cookie_jar = 'C:\Sites\Project for simmons and flecter\PHP\tmp\cookies.txt';
            $cookie_jar2 = 'C:\Sites\Project for simmons and flecter\PHP\tmp\cookies2.txt';
            //echo $url."\r\n";
            $ch = curl_init();
            //curl_setopt($ch, CURLOPT_VERBOSE, true); //used for trouble shooting.
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_HEADER, true);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $resp = curl_exec($ch);
            //print "curl response is:" . $resp;
            if( !$resp ) {
                die('Error: "' . curl_error( $ch ) . '" - Code: ' . curl_errno( $ch ) );
            }

            else if ( 200 != curl_getinfo( $ch, CURLINFO_HTTP_CODE ) ) {
                echo "Expected code 202";
                echo "\n";
                echo "Response HTTP Status Code : " . curl_getinfo( $ch, CURLINFO_HTTP_CODE );
                echo "\n";
                //echo "Response HTTP Body : " . $resp;
            }

            //$resp = json_encode($resp);
            $headers = get_headers_from_curl_response($resp);
            //$headers = json_encode($headers);
            //print_r ($headers);
            $url = $headers["Location"];
            echo "url for getting the bulk data\r\n";
            echo $url."\r\n";
            echo "\n";

            curl_close($ch);
            //sleep for x seconds
            //have to sleep due to processing at clio
                $seconds = 20;
                echo "Sleeping for ".$seconds." seconds\r\n";
                sleep($seconds);
                echo "\n";  
        // seperate curl_
                $curl = curl_init();

                curl_setopt_array($curl, array(
                  CURLOPT_URL => $url,
                  CURLOPT_COOKIEJAR => $cookie_jar2,    
                  CURLOPT_COOKIEFILE=> $cookie_jar2,
                  CURLOPT_CUSTOMREQUEST => "GET",
                  CURLOPT_HTTPHEADER => array("authorization: Bearer ".$token),
                  CURLOPT_SSL_VERIFYPEER => false,     // Disabled SSL Cert checks
                  CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                  CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                  CURLOPT_ENCODING => "",  // handle all encodings
                  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                  CURLOPT_RETURNTRANSFER => true, // return web page
                 ));

                $response = curl_exec($curl);
                $err = curl_error($curl);

                curl_close($curl);
                if ($err) {
                  echo "cURL Error #:" . $err;
                } else {
                      echo 'Curled first time';
                      echo "\n";
                      // have to curl two times one without authorization
                        echo "\n";
                        Echo "cURL repeat";
                        echo "\n";
                        $curl = curl_init();

                            curl_setopt_array($curl, array(
                            CURLOPT_URL => $url,
                            CURLOPT_COOKIEJAR => $cookie_jar2,  
                            CURLOPT_COOKIEFILE=> $cookie_jar2,
                            CURLOPT_CUSTOMREQUEST => "GET",
                            //CURLOPT_HTTPHEADER => array("authorization: Bearer ".$token),
                            CURLOPT_SSL_VERIFYPEER => false,     // Disabled SSL Cert checks
                            CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                            CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                            CURLOPT_ENCODING => "",  // handle all encodings
                            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                            CURLOPT_RETURNTRANSFER => true, // return web page
                            ));

                            $response = curl_exec($curl);
                            $err = curl_error($curl);
                        curl_close($curl);
                        if ($err) {
                            echo "cURL Error #:" . $err;
                        } else 
                            {echo 'Good Reponse from Curl second time';
                            echo "\n";}
                    }

                $response_Decode = json_decode($response);
                //print_r ($response_Decode);

                    // got the data. Now just need to turn to a clean array and save to file.
                    //die('Before Array clean up');

            //clean and make into an array
                $response_Decode=$response_Decode->data;
                $response_Decode=$response_Decode[0];
                //print_r ($response_Decode);
                //die(); //For testing
                $matter_array = array();     
                if(!empty($response_Decode->data) && is_array($response_Decode->data)) {
                    foreach ($response_Decode->data as $info) {
                        $d = array();
                        $d[] = $info->display_number;
                        $d[] = $info->id;
                        $matter_array[] = $d;
                    }
                }

                print_r($matter_array);  //For testing
                die(); //For testing

            //matter_array is a full array of all matter ID and Matter Display numbers  
            return $matter_array; }
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download