adding file to combine rbdigital installation
authorChris Sharp <csharp@georgialibraries.org>
Tue, 8 Jan 2019 19:45:16 +0000 (14:45 -0500)
committerChris Sharp <csharp@georgialibraries.org>
Tue, 15 Jan 2019 16:52:15 +0000 (11:52 -0500)
Open-ILS/src/sql/Pg/version-upgrade/install_rbdigital.sql [new file with mode: 0644]

diff --git a/Open-ILS/src/sql/Pg/version-upgrade/install_rbdigital.sql b/Open-ILS/src/sql/Pg/version-upgrade/install_rbdigital.sql
new file mode 100644 (file)
index 0000000..3c5042e
--- /dev/null
@@ -0,0 +1,118 @@
+BEGIN;
+
+-- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+INSERT INTO config.global_flag (name, label, enabled) VALUES (
+    'extras.enable_digital_resource_search_tab',
+    oils_i18n_gettext(
+        'extras.enable_digital_resource_search_tab',
+        'Extras: Enable public catalog search tab for digital resource searches (e.g., RBDigital)',
+        'cgf',
+        'label'
+    ),
+    FALSE
+);
+
+INSERT INTO config.org_unit_setting_type
+    (name, label, description, grp, datatype) 
+VALUES (
+    'ebook_api.rbdigital.base_uri',
+    oils_i18n_gettext(
+        'ebook_api.rbdigital.base_uri',
+        'RBDigital Base URI',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ebook_api.rbdigital.base_uri',
+        'Base URI for RBDigital API (defaults to https://api.rbdigital.com/v1). Using HTTPS here is strongly encouraged.',
+        'coust',
+        'description'
+    ),
+    'ebook_api',
+    'string'
+),(
+    'ebook_api.rbdigital.library_id',
+    oils_i18n_gettext(
+        'ebook_api.rbdigital.library_id',
+        'RBDigital Library ID',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ebook_api.rbdigital.library_id',
+        'Identifier assigned to this library by RBDigital',
+        'coust',
+        'description'
+    ),
+    'ebook_api',
+    'string'
+),(
+    'ebook_api.rbdigital.basic_token',
+    oils_i18n_gettext(
+        'ebook_api.rbdigital.basic_token',
+        'RBDigital Basic Token',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ebook_api.rbdigital.basic_token',
+        'Basic token for client authentication with RBDigital API (supplied by RBDigital)',
+        'coust',
+        'description'
+    ),
+    'ebook_api',
+    'string'
+);
+
+
+-- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+CREATE SCHEMA extra; -- schema for various extensions
+
+CREATE TABLE extra.rbdigital_digital_services (
+    id SERIAL PRIMARY KEY,
+    name CHARACTER VARYING(50) NOT NULL,
+    is_enabled BOOLEAN NOT NULL,
+    search_uri CHARACTER VARYING(120) NOT NULL,
+    vendor_key CHARACTER VARYING(20) NOT NULL,
+    display_order SMALLINT DEFAULT 1,
+    api_url TEXT
+);
+COMMENT ON TABLE extra.rbdigital_digital_services IS 'This table should contain a single record for each digital media service integrated into Evergreen. ';
+
+INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order) VALUES (1, 'Evergreen', true, '/results', 'default', 1);
+INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order, api_url) VALUES (2, 'RBdigital', false, '/ebook_api/rbdigital/results', 'rbdigital', 2, 'http://api.rbdigitalstage.com/v1');
+
+CREATE TABLE extra.rbdigital_digital_services_authorized (
+    digital_services_id SMALLSERIAL PRIMARY KEY,
+    digital_services_library_id CHARACTER VARYING(64),
+    digital_services_library_token CHARACTER VARYING(64),
+    digital_services_name CHARACTER VARYING(100),
+    digital_services_library_url CHARACTER VARYING(250),
+    id SERIAL NOT NULL,
+    library_id INTEGER,
+    home_ou INTEGER
+);
+COMMENT ON TABLE extra.rbdigital_digital_services_authorized IS 'A table listing the digital services authorized for each entity listed in the library table described above.';
+
+CREATE TABLE extra.rbdigital_search_field_mappings (
+    id BIGSERIAL PRIMARY KEY,
+    evergreen_field_value CHARACTER VARYING(120),
+    digital_services_field_value CHARACTER VARYING(120),
+    search_fields_id INTEGER,
+    evergreen_field_code CHARACTER VARYING(15),
+    digital_services_field_code CHARACTER VARYING(25)
+);
+
+CREATE TABLE extra.rbdigital_search_fields (
+    id SERIAL PRIMARY KEY,
+    digital_services_id INTEGER,
+    evergreen_field CHARACTER VARYING(125),
+    digital_services_field CHARACTER VARYING(125),
+    field_type CHARACTER VARYING(50)
+);
+
+COMMENT ON TABLE extra.rbdigital_search_fields IS 'The purpose of this table is to map the Evergreen search fields to the analogous fields for each digital service. Therefore each integrated digital service will have a record in this table.';
+
+COMMIT;