jive-sdk
Version:
Node.js SDK for Jive Software to assist with the development of add-ons
81 lines (74 loc) • 2.91 kB
JavaScript
/*
* Copyright 2013 Jive Software
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var jive = require("jive-sdk");
function getFormattedData(count) {
return {
"activity": {
"action": {
"name": "posted",
"description": "Activity " + count
},
"actor": {
"name": "Actor Name",
"email": "actor@email.com"
},
"object": {
"type": "website",
"url": "http://www.google.com",
"image": "http://placehold.it/102x102",
"title": "Activity " + count,
"description": "This is the activity description for Activity " + count
},
"externalID": '' + new Date().getTime()
}
};
}
exports.task = jive.tasks.build(
function() {
jive.extstreams.findByDefinitionName( '{{{TILE_NAME}}}' ).then( function(instances) {
if ( instances ) {
instances.forEach( function( instance ) {
var config = instance['config'];
if ( config && config['posting'] === 'off' ) {
return;
}
jive.logger.debug('running pusher for ', instance.name, 'instance', instance.id );
var store = jive.service.persistence();
return store.find('exampleStore', {
'key':'count'
}).then(function(count) {
count = count.length > 0 ? count[0].count : instance.config.startSequence;
count = Number(count);
if ( isNaN(count) ) {
count = 0;
}
store.save('exampleStore', 'count', {
'key':'count',
'count':count+1
}).then(function() {
jive.extstreams.pushActivity(instance, getFormattedData(count));
});
}, function(err) {
//some error
jive.logger.debug('Error encountered, push failed', err);
});
});
}
});
},
5000,
jive.util.guid()
);