Skip to content
This repository has been archived by the owner on Oct 21, 2022. It is now read-only.

Commit

Permalink
add createTEI to support tracked entity instances
Browse files Browse the repository at this point in the history
  • Loading branch information
taylordowns2000 committed Jul 28, 2016
1 parent 6b008c1 commit 1eb4323
Show file tree
Hide file tree
Showing 3 changed files with 251 additions and 9 deletions.
133 changes: 129 additions & 4 deletions lib/Adaptor.js
Expand Up @@ -11,6 +11,9 @@ exports.execute = execute;
exports.event = event;
exports.dataValueSet = dataValueSet;
exports.dataElement = dataElement;
exports.createTEI = createTEI;
exports.updateTEI = updateTEI;
exports.enroll = enroll;

var _languageCommon = require('language-common');

Expand Down Expand Up @@ -96,7 +99,7 @@ function execute() {
* Create an event
* @example
* execute(
* event(data)
* event(eventData)
* )(state)
* @constructor
* @param {object} eventData - Payload data for the event
Expand Down Expand Up @@ -125,11 +128,20 @@ function event(eventData) {
};
}

// Send data values using the dataValueSets resource
function dataValueSet(dataValueSetData) {
/**
* Send data values using the dataValueSets resource
* @example
* execute(
* dataValueSet(data)
* )(state)
* @constructor
* @param {object} data - Payload data for the data value set
* @returns {Operation}
*/
function dataValueSet(data) {

return function (state) {
var body = (0, _languageCommon.expandReferences)(dataValueSetData)(state);
var body = (0, _languageCommon.expandReferences)(data)(state);

var _state$configuration2 = state.configuration;
var username = _state$configuration2.username;
Expand All @@ -152,3 +164,116 @@ function dataValueSet(dataValueSetData) {
function dataElement(key, value) {
return { "dataElement": key, "value": value };
}

/**
* Create one or many new Tracked Entity Instances
* @example
* execute(
* createTEI(data)
* )(state)
* @constructor
* @param {object} data - Payload data for new tracked entity instance(s)
* @returns {Operation}
*/
function createTEI(data) {

return function (state) {

var body = (0, _languageCommon.expandReferences)(data)(state);

var _state$configuration3 = state.configuration;
var username = _state$configuration3.username;
var password = _state$configuration3.password;
var apiUrl = _state$configuration3.apiUrl;


var url = (0, _url.resolve)(apiUrl + '/', 'api/trackedEntityInstances');

console.log("Posting tracked entity instance data:");
console.log(body);

return (0, _Client.post)({ username: username, password: password, body: body, url: url }).then(function (result) {
console.log("Success:", result);
return _extends({}, state, { references: [result].concat(_toConsumableArray(state.references)) });
});
};
}

/**
* Update existing Tracked Entity Instances
* @example
* execute(
* updateTEI(data)
* )(state)
* @constructor
* @param {object} data - Payload data for updating tracked entity instance(s)
* @returns {Operation}
*/
function updateTEI(data) {

return function (state) {
var body = (0, _languageCommon.expandReferences)(data)(state);

var _state$configuration4 = state.configuration;
var username = _state$configuration4.username;
var password = _state$configuration4.password;
var apiUrl = _state$configuration4.apiUrl;


var url = (0, _url.resolve)(apiUrl + '/', 'api/trackedEntityInstances');

console.log("Posting tracked entity instance data:");
console.log(body);

return (0, _Client.post)({ username: username, password: password, body: body, url: url }).then(function (result) {
console.log("Success:", result);
return _extends({}, state, { references: [result].concat(_toConsumableArray(state.references)) });
});
};
}

// Create and enroll TrackedEntityInstances
// export function upsertEnroll(upsertData) {
//
// return state => {
// const body = expandReferences(trackedEntityInstanceData)(state);
//
// const { username, password, apiUrl } = state.configuration;
//
// const url = resolveUrl(apiUrl + '/', 'api/trackedEntityInstances')
//
// console.log("Posting tracked entity instance data:");
// console.log(body)
//
// return post({ username, password, body, url })
// .then((result) => {
// console.log("Success:", result);
// return { ...state, references: [ result, ...state.references ] }
// })
//
// }
// }

// Enroll a tracked entity instance in a program
function enroll(enrollmentData) {

return function (state) {
var body = (0, _languageCommon.expandReferences)(enrollmentData)(state);

var _state$configuration5 = state.configuration;
var username = _state$configuration5.username;
var password = _state$configuration5.password;
var apiUrl = _state$configuration5.apiUrl;


var url = (0, _url.resolve)(apiUrl + '/', 'api/enrollments');

console.log("Enrolling tracked entity instance:");
console.log(body);

return (0, _Client.post)({ username: username, password: password, body: body, url: url }).then(function (result) {
console.log("Success:", result);
return _extends({}, state, { references: [result].concat(_toConsumableArray(state.references)) });
});
};
}
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "language-dhis2",
"version": "0.0.2",
"version": "0.0.3",
"description": "DHIS2 Language Pack for OpenFn",
"main": "lib/index.js",
"scripts": {
Expand Down
125 changes: 121 additions & 4 deletions src/Adaptor.js
Expand Up @@ -32,7 +32,7 @@ export function execute(...operations) {
* Create an event
* @example
* execute(
* event(data)
* event(eventData)
* )(state)
* @constructor
* @param {object} eventData - Payload data for the event
Expand All @@ -59,11 +59,20 @@ export function event(eventData) {
}
}

// Send data values using the dataValueSets resource
export function dataValueSet(dataValueSetData) {
/**
* Send data values using the dataValueSets resource
* @example
* execute(
* dataValueSet(data)
* )(state)
* @constructor
* @param {object} data - Payload data for the data value set
* @returns {Operation}
*/
export function dataValueSet(data) {

return state => {
const body = expandReferences(dataValueSetData)(state);
const body = expandReferences(data)(state);

const { username, password, apiUrl } = state.configuration;

Expand All @@ -85,6 +94,114 @@ export function dataElement(key, value) {
return { "dataElement": key, "value": value }
}

/**
* Create one or many new Tracked Entity Instances
* @example
* execute(
* createTEI(data)
* )(state)
* @constructor
* @param {object} data - Payload data for new tracked entity instance(s)
* @returns {Operation}
*/
export function createTEI(data) {

return state => {

const body = expandReferences(data)(state);

const { username, password, apiUrl } = state.configuration;

const url = resolveUrl(apiUrl + '/', 'api/trackedEntityInstances')

console.log("Posting tracked entity instance data:");
console.log(body)

return post({ username, password, body, url })
.then((result) => {
console.log("Success:", result);
return { ...state, references: [ result, ...state.references ] }
})

}
}

/**
* Update existing Tracked Entity Instances
* @example
* execute(
* updateTEI(data)
* )(state)
* @constructor
* @param {object} data - Payload data for updating tracked entity instance(s)
* @returns {Operation}
*/
export function updateTEI(data) {

return state => {
const body = expandReferences(data)(state);

const { username, password, apiUrl } = state.configuration;

const url = resolveUrl(apiUrl + '/', 'api/trackedEntityInstances')

console.log("Posting tracked entity instance data:");
console.log(body)

return post({ username, password, body, url })
.then((result) => {
console.log("Success:", result);
return { ...state, references: [ result, ...state.references ] }
})

}
}

// Create and enroll TrackedEntityInstances
// export function upsertEnroll(upsertData) {
//
// return state => {
// const body = expandReferences(trackedEntityInstanceData)(state);
//
// const { username, password, apiUrl } = state.configuration;
//
// const url = resolveUrl(apiUrl + '/', 'api/trackedEntityInstances')
//
// console.log("Posting tracked entity instance data:");
// console.log(body)
//
// return post({ username, password, body, url })
// .then((result) => {
// console.log("Success:", result);
// return { ...state, references: [ result, ...state.references ] }
// })
//
// }
// }


// Enroll a tracked entity instance in a program
export function enroll(enrollmentData) {

return state => {
const body = expandReferences(enrollmentData)(state);

const { username, password, apiUrl } = state.configuration;

const url = resolveUrl(apiUrl + '/', 'api/enrollments')

console.log("Enrolling tracked entity instance:");
console.log(body)

return post({ username, password, body, url })
.then((result) => {
console.log("Success:", result);
return { ...state, references: [ result, ...state.references ] }
})

}
}

export {
field, fields, sourceValue,
merge, dataPath, dataValue, lastReferenceValue
Expand Down

0 comments on commit 1eb4323

Please sign in to comment.