public function index($post_id) { $already_indexed = self::already_indexed($post_id); $res = $already_indexed ? DigitalGov_Search_API::update_existing_document($this) : DigitalGov_Search_API::index_new_document($this); if (is_a($res, 'WP_ERROR')) { return self::$API_ERROR; } if ($res['response']['code'] == 201) { update_post_meta($post_id, self::$ALREADY_INDEXED, true); update_post_meta($post_id, self::$DOCUMENT_ID, $this->document_id); return self::$DOCUMENT_CREATED; } elseif ($res['response']['code'] == 200) { update_post_meta($post_id, self::$ALREADY_INDEXED, true); return self::$DOCUMENT_UPDATED; } else { $body = json_decode($res['body']); throw new APICouldNotIndexDocumentException($body->developer_message); } }