Skip to content

Instantly share code, notes, and snippets.

Josh Weisman jweisman

View GitHub Profile
@jweisman
jweisman / SwaggerClientTest.java
Last active Apr 2, 2019
Swagger Codegen with Alma APIs
View SwaggerClientTest.java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
@jweisman
jweisman / parallel.js
Last active Jan 16, 2019
Ex Libris Alma - Parallel API Calls
View parallel.js
const { PerformanceObserver, performance } = require('perf_hooks');
const alma = require('almarestapi-lib');
const records = 10000;
const limit = 25;
const url = '/users?view=brief';
const arrayName = 'user';
var offset = 0, total = 0, processed = 0;
@jweisman
jweisman / Program.cs
Last active May 1, 2018
Refit for Alma APIs
View Program.cs
using Newtonsoft.Json;
using Refit;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace refitalma
{
[Headers("Accept: application/json")]
public interface IAlmaApi
@jweisman
jweisman / bibcard.html.erb
Last active May 1, 2018
Linked Data example - Alma JSONLD and BibCard
View bibcard.html.erb
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title><%= viewmodel[:title] %></title>
</head>
@jweisman
jweisman / export-set.sh
Last active Oct 18, 2017
Process Orchestration in Alma with the Job and Set APIs
View export-set.sh
#!/bin/bash
echo "Creating new set"
SET_ID=`curl -s --fail -X POST -H "Authorization: apikey $API_KEY" -H "Content-type: application/xml" -H "Accept: application/xml" --data @set.xml "https://api-na.hosted.exlibrisgroup.com/almaws/v1/conf/sets" | xmllint --xpath '/set/id/text()' -`
res=$?
if test $res != 0; then
echo "HTTP request failed with return code $res"
exit $res
fi
@jweisman
jweisman / workflow.json
Last active Apr 17, 2018
Azure Logic App for Alma Webhooks
View workflow.json
{
"$connections": {
"value": {
"sftp": {
"connectionId": "/subscriptions/78e1da39-3d31-4b09-8636-f49b6fc5223b/resourceGroups/DefaultResourceGroup/providers/Microsoft.Web/connections/sftp-1",
"connectionName": "sftp-1",
"id": "/subscriptions/78e1da39-3d31-4b09-8636-f49b6fc5223b/providers/Microsoft.Web/locations/eastus/managedApis/sftp"
}
}
},
@jweisman
jweisman / index.js
Created Dec 17, 2016
Twitter Card Proxy
View index.js
'use strict';
exports.handler = function(event, context) {
var agent = event.headers['User-Agent'] || 'None';
var path = event.path.substring(event.path.indexOf('http'));
if (agent.startsWith('Twitterbot')) {
var proxy = require('./proxy');
proxy(path, (err, status, headers, body) => {
var response = {
@jweisman
jweisman / add-file.sh
Last active Nov 1, 2016
Shell script to add a file to an Alma Digital representation
View add-file.sh
INSTITUTION="YOUR-INSTITUTION"
AWS_BUCKET="na-st01.ext.exlibrisgroup.com"
APIKEY="YOUR-API-KEY"
FILENAME=`basename "$1"`
if [ $# -lt 2 ]; then
echo "Usage: `basename $0` file-name representation-id [file-label]"
exit 0
fi
@jweisman
jweisman / curl.txt
Last active Feb 9, 2017
Alma SWORD Deposits
View curl.txt
-----------------1605871705
Content-Type: application/atom+xml; charset="utf-8"
Content-Disposition: attachment; name=atom
MIME-Version: 1.0
<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:dcterms="http://purl.org/dc/terms/">
<title>Deposit sample</title>
@jweisman
jweisman / AlmaValidateFields.groovy
Last active Oct 5, 2018
Script to validate the existence of several custom fields on transition using the ScriptRunner plugin for Jira.
View AlmaValidateFields.groovy
import com.opensymphony.workflow.InvalidInputException
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
def customFieldManager = ComponentManager.getInstance().getCustomFieldManager()
def fields = []
// For Alma issues, if issue is fixed, make all sorts of validations
You can’t perform that action at this time.