/**
  * delete all items and items' attributes from recommender
  *
  */
 public function clear(DataApi\Client $client)
 {
     if (!$this->config->isAppend()) {
         $client->deleteItems();
         $itemsAttributes = $client->getItemsAttributes();
         if (isset($itemsAttributes['attributes'])) {
             foreach ($itemsAttributes['attributes'] as $attribute) {
                 $client->deleteItemsAttribute($attribute['name']);
             }
         }
     }
     return $this;
 }
 /**
  * @return void
  */
 private function refreshItemsAttributes()
 {
     $expectedAttributes = [self::ATTRIBUTE_NAME, self::ATTRIBUTE_DESCRIPTION, self::ATTRIBUTE_WEIGHT];
     $actualAttributes = $this->getAttributesNames($this->client->getItemsAttributes());
     foreach ($actualAttributes as $attribute) {
         if (!in_array($attribute, $expectedAttributes)) {
             $this->client->deleteItemsAttribute($attribute);
         }
     }
     if (!in_array(self::ATTRIBUTE_NAME, $actualAttributes)) {
         $this->client->addItemsAttribute(self::ATTRIBUTE_NAME, DataType::TEXT, 'en', MetaType::TITLE);
     }
     if (!in_array(self::ATTRIBUTE_DESCRIPTION, $actualAttributes)) {
         $this->client->addItemsAttribute(self::ATTRIBUTE_DESCRIPTION, DataType::TEXT, 'en');
     }
     if (!in_array(self::ATTRIBUTE_WEIGHT, $actualAttributes)) {
         $this->client->addItemsAttribute(self::ATTRIBUTE_WEIGHT, DataType::INTEGER);
     }
 }