Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function parseRosterFiles(){
- $dir = "/usr/cwis/data/sa-data/ccc-api/scripts/PHP/responses/";
- $files = glob($dir . "roster*");
- $failed = array();
- $failcnt = 0;
- //throw new Exception(var_dump($files));
- if ($files !== NULL){
- $data = NULL;
- for ($i = 0; $i < count($files); $i++) {
- $resArray = json_decode(utf8_decode(file_get_contents($files[$i])));
- if ($resArray !== NULL) {
- // The data is both stdClasses and Arrays, lets just make them all arrays...
- // This is actually really fast, does it in about 1-200ms.
- for ($j = 0; $j < count($resArray); $j++) {
- $resArray[$j] = (array)$resArray[$j];
- for ($k = 0; $k < count($resArray[$j]['users']); $k++) {
- $resArray[$j]['users'][$k] = (array)$resArray[$j]['users'][$k];
- foreach ($resArray[$j]['users'][$k] as $rauK => $rauV) {
- $resArray[$j]['users'][$k][$rauK] = (array)$rauV;
- $resArray[$j]['users'][$k][$rauK] = array_values($resArray[$j]['users'][$k][$rauK]);
- if ($rauK == "position_data") {
- for ($l = 0; $l < count($resArray[$j]['users'][$k]['position_data']); $l++) {
- $resArray[$j]['users'][$k]['position_data'][$l] = (array)$resArray[$j]['users'][$k]['position_data'][$l];
- }
- }
- }
- }
- }
- //throw new Exception(var_dump($resArray));
- unset($j, $k, $l, $m);
- $insert = array();
- $inscnt = 0;
- $iq = "";
- $uq = "";
- for ($j = 0; $j < count($resArray); $j++) {
- // Outside loop, has org info and user array
- for ($k = 0; $k < count($resArray[$j]['users']); $k++) {
- for ($l = 0; $l < count($resArray[$j]['users'][$k]['position_data']); $l++) {
- $insert[$inscnt] = array();
- $insert[$inscnt]['org_id'] = $resArray[$j]['orgid'];
- $insert[$inscnt]['org_name'] = $resArray[$j]['orgname'];
- // Fix for weird array indicies of "0" not the int, the string, which causes all SORTS of headaches.
- $insert[$inscnt]['usr_campusemail'] = $resArray[$j]['users'][$k]['campusemail'][0];
- $insert[$inscnt]['usr_firstname'] = $resArray[$j]['users'][$k]['firstname'][0];
- $insert[$inscnt]['usr_lastname'] = $resArray[$j]['users'][$k]['lastname'][0];
- $insert[$inscnt]['usr_id'] = $resArray[$j]['users'][$k]['id'][0];
- $insert[$inscnt]['usr_preferredemail'] = isset($resArray[$j]['users'][$k]['preferredemail'][0]) ? $resArray[$j]['users'][$k]['preferredemail'][0] : "";
- $insert[$inscnt]['usr_username'] = $resArray[$j]['users'][$k]['username'][0];
- $insert[$inscnt]['usr_position_name'] = $resArray[$j]['users'][$k]['position_data'][$l]['name'];
- $insert[$inscnt]['usr_position_enddate'] = $resArray[$j]['users'][$k]['position_data'][$l]['enddate'];
- $insert[$inscnt]['usr_position_startdate'] = $resArray[$j]['users'][$k]['position_data'][$l]['startdate'];
- $insert[$inscnt]['usr_position_userenddate'] = $resArray[$j]['users'][$k]['position_data'][$l]['userenddate'];
- $insert[$inscnt]['usr_position_userstartdate'] = $resArray[$j]['users'][$k]['position_data'][$l]['userstartdate'];
- $insert[$inscnt]['usr_position_template'] = $resArray[$j]['users'][$k]['position_data'][$l]['template'];
- $insert[$inscnt]['usr_position_type'] = $resArray[$j]['users'][$k]['position_data'][$l]['type'];
- $chk = "SELECT ccr.* FROM ccc_cl_roster as ccr WHERE ccr.cl_usr_id = '" . $insert[$inscnt]['usr_id'] . "'";
- //$res = get_result_array($chk);
- $res = NULL;
- $diff = array();
- $keys = "";
- $values = "";
- if ($res != NULL) {
- $uStr = "";
- foreach ($res[0] as $kr => $vr) {
- foreach ($insert[$inscnt] as $ki => $vi) {
- if ($kr == ("cl_" . $ki)) {
- if ($vr != $vi) {
- $vi = urlencode($vi);
- $uStr .= $ki . " = '" . $vi . "',";
- }
- }
- }
- }
- if (strlen($uStr) > 0) {
- $uStr = substr($uStr, 0, strlen($uStr) - 1);
- $uq .= " UPDATE ccc_cl_roster
- SET " . $uStr;
- $uq .= " WHERE cl_usr_id = '" . $insert[$inscnt]['usr_id'] . "'";
- }
- } else {
- foreach ($insert[$inscnt] as $ki => $vi) {
- $vi = urlencode(addslashes($vi));
- $keys .= "cl_" . $ki . ",";
- $values .= "'" . $vi . "',";
- }
- $keys = substr($keys, 0, strlen($keys) - 1);
- $values = substr($values, 0, strlen($values) - 1);
- if ($inscnt == 0) {
- $iq .= " INSERT INTO ccc_cl_roster (id, " . $keys . ")";
- $iq .= " VALUES ";
- }
- $iq .= "(" . $inscnt . ", " . $values . "),";
- //throw new Exception(var_dump($iq));
- }
- $inscnt++;
- } // end of position loop
- }// End of User Loop
- }
- unset($insert);
- if (strlen($iq) > 0) {
- $iq = substr($iq, 0, strlen($iq) - 1);
- $res = insert_data($iq);
- $iq = "";
- }
- if (isset($uq)) {
- if (strlen($uq) > 0) {
- $res1 = insert_data($uq);
- $uq = "";
- }
- }
- $insert = array();
- $inscnt = -1;
- }
- unset($data);
- unset($resArray);
- echo " ";
- ob_flush();
- flush();
- }
- }
- if ($failcnt == 0) {
- return true;
- } else {
- return $failed;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement