Rest - Admin - Flatpack
Purpose
To automate and retrieve flatpack archives from views
Base URL
http://app.views.coop/api/restful/admin/flatpack
Listing available Flatpacks
curl --url <Base URL>/list(.json|xml) -u<username>:<password>
<?xml version="1.0" encoding="UTF-8"?> <admin> <flatpacks> <flatpack id="0"> <file>flatpack20160113.zip</file> <date>13/01/2016</date> <size>1100021</size> <sha1sum>2b77ba54249c7a25f4a05be2b9a7c28a5fe9071f</sha1sum> </flatpack> <flatpack id="1"> <file>flatpack20160112.zip</file> <date>2016-01-12</date> <size>1099668</size> <sha1sum>68eac14b20480b9e77f599b8685307153e3f43db</sha1sum> </flatpack> </flatpacks> </admin>
Downloading a Flatpack
curl --url <Base URL>/<file> -u<username>:<password>
This will download a the flatpck zip file requested.
Generate a Flatpack
curl --url <Base URL>/<file> -u<username>:<password> -XPOST [--data "<xml>"]
This will generate a new flatpack, if one does not already exist. If not data is posted to the API, the the flatpack is generated with all the available blocks. To restrict the data within the flatpack archive, you should pass a list of blocks you want:
<flatpackblocks> <flatpackblock>personTypePerson</flatpackblock> <flatpackblock>personTypeStaff</flatpackblock> <flatpackblock>personTypeVolunteer</flatpackblock> <flatpackblock>personTypeProfessional</flatpackblock> <flatpackblock>sessionAttendance</flatpackblock> </flatpackblocks>
You can build up a flatpack in several calls by adding more blocks. Each existing block will be updated, but if there is no change in blocks being requested, then the flatpack will remain as it is.
Get a list of available blocks
curl --url <Base URL>/getblocks(.json|xml) -u<username>:<password>
These are the objects can be packed into a flatpack. By default all available data is stored within the flatpack
<?xml version="1.0" encoding="UTF-8"?> <admin> <flatpackblocks> <flatpackblock id="0">reports</flatpackblock> <flatpackblock id="1">agencyProject</flatpackblock> <flatpackblock id="2">caseStudies</flatpackblock> <flatpackblock id="3">finance</flatpackblock> <flatpackblock id="4">group</flatpackblock> <flatpackblock id="5">media</flatpackblock> <flatpackblock id="6">note</flatpackblock> <flatpackblock id="7">objectives</flatpackblock> <flatpackblock id="8">outcomes</flatpackblock> <flatpackblock id="9">personCondition</flatpackblock> <flatpackblock id="10">personContact</flatpackblock> <flatpackblock id="11">personQualifications</flatpackblock> <flatpackblock id="12">personRestriction</flatpackblock> <flatpackblock id="13">questionnaireAnswers</flatpackblock> <flatpackblock id="14">questionnaire</flatpackblock> <flatpackblock id="15">questionsData</flatpackblock> <flatpackblock id="16">reportsPublished</flatpackblock> <flatpackblock id="17">session</flatpackblock> <flatpackblock id="18">sessionGroup</flatpackblock> <flatpackblock id="19">sessionStaffAttendance</flatpackblock> <flatpackblock id="20">stock</flatpackblock> <flatpackblock id="21">stockCategory</flatpackblock> <flatpackblock id="22">stockLoan</flatpackblock> <flatpackblock id="23">venue</flatpackblock> <flatpackblock id="24">personTypePerson</flatpackblock> <flatpackblock id="25">personTypeStaff</flatpackblock> <flatpackblock id="26">personTypeVolunteer</flatpackblock> <flatpackblock id="27">personTypeProfessional</flatpackblock> <flatpackblock id="28">sessionAttendance</flatpackblock> </flatpackblocks> </admin>
Note 1: The list above may vary from agency to agency Note 2: The id's in the resulting XML data are irrelevant and can be ignored