apigee_api_catalog-8.x-2.4/apigee_api_catalog.install
apigee_api_catalog.install
<?php /** * @file * Copyright 2019 Google Inc. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public * License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /** * @file * Install file for Apigee API Catalog. */ /** * Implements hook_requirements(). */ function apigee_api_catalog_requirements($phase) { // Prevent installation alongside of the `apigee_edge_apidocs` module. if ($phase === 'install' && \Drupal::moduleHandler()->moduleExists('apigee_edge_apidocs')) { return [ 'apigee_api_catalog_module_conflict' => [ 'title' => t('Apigee API Catalog'), 'description' => t('The "Apigee Edge API Docs" module is currently installed. It is deprecated and should be uninstalled before installing the Apigee API Catalog module.'), 'severity' => REQUIREMENT_ERROR, ], ]; } return []; } /** * Update the length of the name field. */ function apigee_api_catalog_update_8701() { $entity_type_id = 'apidoc'; $field_name = 'name'; $field_length = 255; $definition_update_manager = \Drupal::entityDefinitionUpdateManager(); $last_installed_schema_repository = \Drupal::service('entity.last_installed_schema.repository'); $entity_type = $definition_update_manager->getEntityType($entity_type_id); // Update the field storage definition. /** @var \Drupal\Core\Field\FieldStorageDefinitionInterface[] $field_storage_definitions */ $field_storage_definitions = $last_installed_schema_repository->getLastInstalledFieldStorageDefinitions($entity_type_id); $field_storage_definitions[$field_name]->setSetting('max_length', $field_length); $definition_update_manager->updateFieldableEntityType($entity_type, $field_storage_definitions, $sandbox); $definition = \Drupal::entityTypeManager()->getDefinition($entity_type_id); $data_table = $definition->getDataTable(); $revision_data_table = $definition->getRevisionDataTable(); $entity_storage_schema_sql = \Drupal::keyValue('entity.storage_schema.sql'); $schema_key = "$entity_type_id.field_schema_data.$field_name"; if ($field_schema_data = $entity_storage_schema_sql->get($schema_key)) { // Update storage schema for data table. $field_schema_data[$data_table]['fields'][$field_name]['length'] = $field_length; // Update storage schema for the revision table. if ($revision_data_table) { $field_schema_data[$revision_data_table]['fields'][$field_name]['length'] = $field_length; } $entity_storage_schema_sql->set($schema_key, $field_schema_data); // Update the base database field. $schema = \Drupal::database()->schema(); $schema->changeField($data_table, $field_name, $field_name, $field_schema_data[$data_table]['fields'][$field_name]); // Update schema for the revision table. if ($revision_data_table) { $schema->changeField($revision_data_table, $field_name, $field_name, $field_schema_data[$revision_data_table]['fields'][$field_name]); } } } /** * Set module schema to 8801. */ function apigee_api_catalog_update_8801() { // Empty - only needed to set the 2.x module schema number. } /** * Create API Doc node type and fields if updating from 1.x. */ function apigee_api_catalog_update_8802() { return \Drupal::service('apigee_api_catalog.updates')->update8802(); } /** * Recreate other fields added to the API Doc entity onto the API Doc node type if updating from 1.x. */ function apigee_api_catalog_update_8803() { return \Drupal::service('apigee_api_catalog.updates')->update8803(); } /** * Convert API Doc entities to nodes (migrating data) if updating from 1.x. */ function apigee_api_catalog_update_8804(&$sandbox) { return \Drupal::service('apigee_api_catalog.updates')->update8804($sandbox); } /** * Deprecated step. */ function apigee_api_catalog_update_8805() { // return \Drupal::service('apigee_api_catalog.updates')->update8805(); } /** * Re-install if needed deprecated API Doc entity definition. */ function apigee_api_catalog_update_8806() { return \Drupal::service('apigee_api_catalog.updates')->update8806(); } /** * Removed required atttribute for field_apidoc_spec_file_source. */ function apigee_api_catalog_update_8807() { return \Drupal::service('apigee_api_catalog.updates')->update8807(); } /** * Add API Product field. */ function apigee_api_catalog_update_8808() { return \Drupal::service('apigee_api_catalog.updates')->update8808(); } /** * Rename API Doc content type as OpenAPI Doc. */ function apigee_api_catalog_update_8809() { return \Drupal::service('apigee_api_catalog.updates')->update8809(); } /** * Removed yml extension from field_apidoc_file_link and field_apidoc_spec allowed values. */ function apigee_api_catalog_update_8810() { return \Drupal::service('apigee_api_catalog.updates')->update8810(); }