private function convert_array_to_event()

in core/ServerEventAsyncTask.php [58:97]


  private function convert_array_to_event($event_as_array){
    $event = new Event($event_as_array);
    // If user_data exists, an UserData object is created
    // and set
    if(array_key_exists('user_data', $event_as_array)){
      // The method convert_user_data converts the keys used in the
      // normalized array to the keys used in the constructor of UserData
      $user_data = new UserData($this->convert_user_data(
        $event_as_array['user_data']
      ));
      $event->setUserData($user_data);
    }
    // If custom_data exists, a CustomData object is created and set
    if(array_key_exists('custom_data', $event_as_array)){
      $custom_data = new CustomData($event_as_array['custom_data']);
      // If contents exists in custom_data, an array of Content is created
      // and set
      if(array_key_exists('contents', $event_as_array['custom_data'])){
        $contents = array();
        foreach(
          $event_as_array['custom_data']['contents'] as $contents_as_array
        ){
          // The normalized contents array encodes product id as id
          // but the constructor of Content requires product_id
          if(array_key_exists('id', $contents_as_array)){
            $contents_as_array['product_id'] = $contents_as_array['id'];
          }
          $contents[] = new Content($contents_as_array);
        }
        $custom_data->setContents($contents);
      }
      if(array_key_exists('fb_integration_tracking',
        $event_as_array['custom_data'])){
        $custom_data->addCustomProperty('fb_integration_tracking',
          $event_as_array['custom_data']['fb_integration_tracking']);
      }
      $event->setCustomData($custom_data);
    }
    return $event;
  }