Example #1
0
             // matching heads
             if ($hasOps) {
                 // incoming ops without conflict
                 // Add incoming ops, respond with a new head
                 $newHead = Db_Op::addOpsArray($esId, $memberId, $ops);
                 $response["result"] = 'added';
                 $response["head_seq"] = $newHead ? $newHead : $currentHead;
             } else {
                 // no incoming ops (just checking for new ops...)
                 $response["result"] = 'new_ops';
                 $response["ops"] = array();
                 $response["head_seq"] = $currentHead;
             }
         } else {
             // HEADs do not match
             $response["ops"] = $op->getOpsAfterJson($esId, $seqHead);
             $response["head_seq"] = $currentHead;
             $response["result"] = $hasOps ? 'conflict' : 'new_ops';
         }
         $inactiveMembers = $member->updateByTimeout($esId);
         foreach ($inactiveMembers as $inactive) {
             $op->removeCursor($esId, $inactive);
             $op->removeMember($esId, $inactive);
         }
     } else {
         // Error - no seq_head passed
         throw new BadRequestException();
     }
     break;
 default:
     $ex = new BadRequestException();