Example #1
0
     $file = new File($session->getFileId());
 } catch (\Exception $e) {
     Helper::warnLog('Error. Session no longer exists. ' . $e->getMessage());
     $ex = new BadRequestException();
     $ex->setBody($request->getRawRequest());
     throw $ex;
 }
 $command = $request->getParam('command');
 switch ($command) {
     case 'sync_ops':
         $seqHead = (string) $request->getParam('args/seq_head');
         if (!is_null($seqHead)) {
             $ops = $request->getParam('args/client_ops');
             $hasOps = is_array($ops) && count($ops) > 0;
             $op = new Db_Op();
             $currentHead = $op->getHeadSeq($esId);
             try {
                 $member->updateActivity($memberId);
             } catch (\Exception $e) {
             }
             // TODO handle the case ($currentHead == "") && ($seqHead != "")
             if ($seqHead == $currentHead) {
                 // 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...)