Skip to content

Instantly share code, notes, and snippets.

@peterberwind
Created November 20, 2016 01:47
Show Gist options
  • Save peterberwind/6d7c85e9daa1395462251a3ee383a700 to your computer and use it in GitHub Desktop.
Save peterberwind/6d7c85e9daa1395462251a3ee383a700 to your computer and use it in GitHub Desktop.
Xipsy Prismic.Factory.js
'use strict'
angular.module('$XipsyPrismic', [])
// Everything Prismic Related
.factory('$XipsyPrismicFactory', function($window, $q){
// Initial Prismic Setup
var Prismic = $window.Prismic
var config = {}
config.url = 'https://xipsy.prismic.io/api'
// Maybe we need that stuff later (?)
config.accessToken = 'MC5XQ1MtSkNZQUFDWUFMdFV3.77-9AO-_ve-_ve-_ve-_vWLvv71077-9GO-_vXLvv70977-977-9aSnvv73vv73vv70NU--_vV91ee-_vRs-77-9'
config.clientID = 'WCS-JCYAACgALtUv'
config.clientSecret = '7eb7669e6aaaa7a800f234bc4bf1e7b6'
// Our main helper function to make api calls
function simpleFetch(Predicates, options) {
var opts = options || {}
// $q the way Angular Rolls
var deferred = $q.defer()
var callback = function (error, api) {
api.query(Predicates, opts, function (error, response) {
if (error) {
deferred.reject(error)
}
deferred.resolve(response.results)
})
}
Prismic.api(config.url, callback)
// Always return a promise Angular Style
return deferred.promise
}
// ACTUAL FACTORY RIGHT HERE!!! 😮
var PrismicHelper = {}
PrismicHelper.getFairs = function () {
return simpleFetch([
Prismic.Predicates.at('document.type', 'fair'),
Prismic.Predicates.not('my.fair.priority', 'Yes')
], {
pageSize: 100
})
}
PrismicHelper.getPriorityFairs = function () {
return simpleFetch([
Prismic.Predicates.at('document.type', 'fair'),
Prismic.Predicates.at('my.fair.priority', 'Yes')
], {
pageSize: 100
})
}
PrismicHelper.getFairById = function (id) {
return simpleFetch( Prismic.Predicates.at('document.id', id) )
}
return PrismicHelper
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment