<?php

/**
 * @file 
 * islandora-basic-image.install
 */

/**
 * Implements hook_install
 */
function islandora_basic_image_install() {
  module_load_include('inc', 'islandora', 'RestConnection');
  global $user;
  global $base_root;
  
  try {
    $restConnection = new RestConnection($user);
  } catch (Exception $e) {
    drupal_set_message(t('Unable to connect to the repository %e', array('%e' => $e)), 'error');
    return;
  }

  $content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image');
  if (empty($content_model_query['results'])) {
    try {
      $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/simple_islandora_basic_imageCM.xml');
      $restConnection->api->m->ingest(array('string' => $xml));
    } catch (Exception $e) {
      drupal_set_message(t('Unable to install content models %e', array('%e' => $e)), 'error');
      return;
    }
    drupal_set_message(t('Content models installed!'));
  }
  else {
    drupal_set_message(t('Content models already exist!'), 'warning');
  }

  $collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image_collection');
  if (empty($collection_query['results'])) {
    try {
      $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection.xml');
      $restConnection->api->m->ingest(array('string' => $xml));
      $fedora_object = new FedoraObject('islandora:sp_basic_image_collection', $restConnection->repository);
      $datastream = new NewFedoraDatastream('TN', 'M', $fedora_object, $restConnection->repository);
      $file_path = $base_root . '/' . drupal_get_path('module', 'islandora_basic_image') . '/Crystal_Clear_filesystem_folder_grey.png';
      $datastream->label = 'Thumbnail';
      $datastream->mimetype = 'image/png';
      $datastream->setContentFromUrl($file_path);
      $fedora_object->ingestDatastream($datastream);
      
    } catch (Exception $e) {
      drupal_set_message(t('Unable to install collections %e', array('%e' => $e)), 'error');
      return;
    }
    drupal_set_message(t('Collections installed!'));
  }
  else {
    drupal_set_message(t('Collections already exist!'), 'warning');
  }
}


/**
 * Implements hook_uninstall
 */
function islandora_basic_image_uninstall() {
  module_load_include('inc', 'islandora', 'RestConnection');
  global $user;
  try {
    $restConnection = new RestConnection($user);
  } catch (Exception $e) {
    drupal_set_message(t('Unable to connect to the repository %e', array('%e' => $e)), 'error');
    return;
  }

  $content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image');
  if (!empty($content_model_query['results'])) {
    try {
      $restConnection->repository->purgeObject('islandora:sp_basic_image');
    } catch (Exception $e) {
      drupal_set_message(t('Unable to purge content models %e', array('%e' => $e)), 'error');
      return;
    }
    drupal_set_message(t('Content models purged!'));
  }
  else {
    drupal_set_message(t('Content models don\'t exist!'), 'warning');
  }

  $collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image_collection');
  if (!empty($collection_query['results'])) {
    try {
      $restConnection->repository->purgeObject('islandora:sp_basic_image_collection');
    } catch (Exception $e) {
      drupal_set_message(t('Unable to purge collections %e', array('%e' => $e)), 'error');
      return;
    }
    drupal_set_message(t('Collections purged!'));
  }
  else {
    drupal_set_message(t('Collections don\'t exist!'), 'warning');
  }
}