From 5718d422f5c434016c4d64ceec01eb8f1a091d08 Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 12:38:26 +0000 Subject: [PATCH 1/7] adjust example call to BDR --- packages/ghana-bdr/src/Adaptor.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ghana-bdr/src/Adaptor.js b/packages/ghana-bdr/src/Adaptor.js index 0a9a520be..29027caf7 100644 --- a/packages/ghana-bdr/src/Adaptor.js +++ b/packages/ghana-bdr/src/Adaptor.js @@ -68,11 +68,10 @@ export function post(path, data) { * Generate a birth certificate * @example * sendBirthNotification({ + * registry_code: 'abc123', * child: {}, * mother: {}, * father: {}, - * health_facility: {}, - * birth_informant: {} * }) * @function * @public From e5846b953fddc0a46c569b01517d335676051174 Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 13:04:05 +0000 Subject: [PATCH 2/7] run build --- packages/ghana-bdr/ast.json | 2 +- packages/ghana-bdr/src/mock.js | 1 - packages/ghana-bdr/src/util.js | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/ghana-bdr/ast.json b/packages/ghana-bdr/ast.json index c33afb931..167f5e1e1 100644 --- a/packages/ghana-bdr/ast.json +++ b/packages/ghana-bdr/ast.json @@ -67,7 +67,7 @@ "tags": [ { "title": "example", - "description": "sendBirthNotification({\n child: {},\n mother: {},\n father: {},\n health_facility: {},\n birth_informant: {}\n})" + "description": "sendBirthNotification({\n registry_code: 'abc123',\n child: {},\n mother: {},\n father: {},\n})" }, { "title": "function", diff --git a/packages/ghana-bdr/src/mock.js b/packages/ghana-bdr/src/mock.js index 80ede7382..c5b761e0d 100644 --- a/packages/ghana-bdr/src/mock.js +++ b/packages/ghana-bdr/src/mock.js @@ -88,7 +88,6 @@ export function createServer(url = 'http://tracker.chimgh.org') { const mockPool = agent.get(url); const sendBirthNotification = req => { - // if (validate(JSON.parse(req.body))) { if (validateRequestBody(JSON.parse(req.body), sampleRequestBody)) { return { statusCode: 200, diff --git a/packages/ghana-bdr/src/util.js b/packages/ghana-bdr/src/util.js index c7a77ce25..86ffedd3d 100644 --- a/packages/ghana-bdr/src/util.js +++ b/packages/ghana-bdr/src/util.js @@ -21,7 +21,6 @@ export const setMockClient = mockClient => { client = mockClient; }; - // mock validator export const validateRequestBody = (request, sample) => { // Check top-level keys @@ -77,6 +76,7 @@ export const prepareNextState = async (state, response) => { export const request = (path, options) => { return async state => { const { baseUrl, username, password } = state.configuration; + getClient(baseUrl); const basePath = baseUrl ? new URL(baseUrl).pathname : '/'; From bd492b1670a82c6b3faa7a2920fe2d1d9a71351e Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 13:44:04 +0000 Subject: [PATCH 3/7] fix examples for wigal --- packages/wigal-sms/CHANGELOG.md | 2 +- packages/wigal-sms/src/Adaptor.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/wigal-sms/CHANGELOG.md b/packages/wigal-sms/CHANGELOG.md index 4ed11189f..50ba7a130 100644 --- a/packages/wigal-sms/CHANGELOG.md +++ b/packages/wigal-sms/CHANGELOG.md @@ -10,7 +10,7 @@ ### Patch Changes -- Make sendSMS public +- Make sendSms public ## 0.1.0 diff --git a/packages/wigal-sms/src/Adaptor.js b/packages/wigal-sms/src/Adaptor.js index 045e2a3e7..55c3c25dd 100644 --- a/packages/wigal-sms/src/Adaptor.js +++ b/packages/wigal-sms/src/Adaptor.js @@ -45,14 +45,14 @@ export function execute(...operations) { * Send SMS using Wigal SMS Gateway API * * @example Send General SMS message - * sendSMS({ + * sendSms({ * senderid: "Stevkky", * destinations: [{ destination: "0552825710" }], * message: "This is a sample message for SMS sending via Wigal FROG API.", * smstype: "text", * }); * @example Send Personalized SMS message - * sendSMS({ + * sendSms({ * senderid: "Stevkky", * destinations: [ * { From 92398d2351ee8668133177694810e2f2cc340ddd Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 17:03:19 +0000 Subject: [PATCH 4/7] update mock and handle body-based auth for NIA --- packages/ghana-bdr/src/util.js | 3 ++- packages/ghana-nia/ast.json | 2 +- packages/ghana-nia/src/Adaptor.js | 3 +-- packages/ghana-nia/src/mock.js | 1 - packages/ghana-nia/src/util.js | 11 +++++++++-- packages/wigal-sms/ast.json | 4 ++-- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/ghana-bdr/src/util.js b/packages/ghana-bdr/src/util.js index 86ffedd3d..f167dabd5 100644 --- a/packages/ghana-bdr/src/util.js +++ b/packages/ghana-bdr/src/util.js @@ -111,7 +111,8 @@ export const request = (path, options) => { if (data.username || data.password) { throwError( - "Please don't supply `username` and `password` in your request body." + "Please don't supply `username` and `password` in your request body. " + + 'The adaptor will append it automatically.' ); } diff --git a/packages/ghana-nia/ast.json b/packages/ghana-nia/ast.json index f50aeed47..8de58e361 100644 --- a/packages/ghana-nia/ast.json +++ b/packages/ghana-nia/ast.json @@ -67,7 +67,7 @@ "tags": [ { "title": "example", - "description": "registerChild({\n babyData: {\n dateOfBirth: \"string\",\n fatherName: \"string\",\n forenames: \"string\",\n gender: \"string\",\n lightwaveETrackerID: \"string\",\n motherName: \"string\",\n noSiblingsInDelivery: \"string\",\n placeOfBirth: \"string\",\n surname: \"string\",\n timeOfbirth: \"string\",\n weightAtBirth: \"string\",\n babyPicture: \"string\"\n },\n personVouching: {\n etrackerLightwaveID: \"string\",\n ghanaCardPIN: \"string\",\n relationToBaby: \"string\",\n relativePhone: \"string\",\n relativePicture: \"string\"\n },\n merchantKey: \"XXXXXXXXXXXXXXXXXXXXXX\"\n})" + "description": "registerChild({\n babyData: {\n dateOfBirth: \"string\",\n fatherName: \"string\",\n forenames: \"string\",\n gender: \"string\",\n lightwaveETrackerID: \"string\",\n motherName: \"string\",\n noSiblingsInDelivery: \"string\",\n placeOfBirth: \"string\",\n surname: \"string\",\n timeOfbirth: \"string\",\n weightAtBirth: \"string\",\n babyPicture: \"string\"\n },\n personVouching: {\n etrackerLightwaveID: \"string\",\n ghanaCardPIN: \"string\",\n relationToBaby: \"string\",\n relativePhone: \"string\",\n relativePicture: \"string\"\n }\n})" }, { "title": "function", diff --git a/packages/ghana-nia/src/Adaptor.js b/packages/ghana-nia/src/Adaptor.js index 89651a013..f746c7cf3 100644 --- a/packages/ghana-nia/src/Adaptor.js +++ b/packages/ghana-nia/src/Adaptor.js @@ -88,8 +88,7 @@ export function post(path, data) { * relationToBaby: "string", * relativePhone: "string", * relativePicture: "string" - * }, - * merchantKey: "XXXXXXXXXXXXXXXXXXXXXX" + * } * }) * @function * @public diff --git a/packages/ghana-nia/src/mock.js b/packages/ghana-nia/src/mock.js index e9e832e67..0b28badf8 100644 --- a/packages/ghana-nia/src/mock.js +++ b/packages/ghana-nia/src/mock.js @@ -10,7 +10,6 @@ import { validateRequestBody } from './util'; // const validate = new Ajv().compile(reqSchema); const sampleRequestBody = { - merchantKey: '89487284-9083-4015-9128-91d8db7e023e', babyData: { dateOfBirth: '2024-03-05', fatherName: 'Nyarkoa Osei-Akoto', diff --git a/packages/ghana-nia/src/util.js b/packages/ghana-nia/src/util.js index 4e7e87d9b..fc0bf8e6a 100644 --- a/packages/ghana-nia/src/util.js +++ b/packages/ghana-nia/src/util.js @@ -48,7 +48,6 @@ export const validateRequestBody = (request, sample) => { return true; }; - export const setMockClient = mockClient => { client = mockClient; }; @@ -108,8 +107,16 @@ export const request = (path, options) => { ...otherOptions, }; + if (data.merchantkey) { + throwError( + "Please don't supply `merchantKey` in your request body. " + + 'The adaptor will append it automatically.' + ); + } + if (data) { - args.body = JSON.stringify(data); + console.log('hello?'); + args.body = JSON.stringify({ ...data, merchantKey }); } const response = await client.request(args); diff --git a/packages/wigal-sms/ast.json b/packages/wigal-sms/ast.json index 8e9bad886..601d000b5 100644 --- a/packages/wigal-sms/ast.json +++ b/packages/wigal-sms/ast.json @@ -72,12 +72,12 @@ "tags": [ { "title": "example", - "description": "sendSMS({\n senderid: \"Stevkky\",\n destinations: [{ destination: \"0552825710\" }],\n message: \"This is a sample message for SMS sending via Wigal FROG API.\",\n smstype: \"text\",\n});", + "description": "sendSms({\n senderid: \"Stevkky\",\n destinations: [{ destination: \"0552825710\" }],\n message: \"This is a sample message for SMS sending via Wigal FROG API.\",\n smstype: \"text\",\n});", "caption": "Send General SMS message" }, { "title": "example", - "description": "sendSMS({\n senderid: \"Stevkky\",\n destinations: [\n {\n destination: \"0542709440\",\n message: \"Hello Joe your order is ready\",\n msgid: \"MGS1010101\",\n smstype: \"text\",\n },\n ],\n});", + "description": "sendSms({\n senderid: \"Stevkky\",\n destinations: [\n {\n destination: \"0542709440\",\n message: \"Hello Joe your order is ready\",\n msgid: \"MGS1010101\",\n smstype: \"text\",\n },\n ],\n});", "caption": "Send Personalized SMS message" }, { From 7c677a541758b093501dbcfedb43dfd5052165e6 Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 17:06:14 +0000 Subject: [PATCH 5/7] cs --- .changeset/real-monkeys-relate.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/real-monkeys-relate.md diff --git a/.changeset/real-monkeys-relate.md b/.changeset/real-monkeys-relate.md new file mode 100644 index 000000000..fb4f74ec1 --- /dev/null +++ b/.changeset/real-monkeys-relate.md @@ -0,0 +1,7 @@ +--- +'@openfn/language-ghana-bdr': patch +'@openfn/language-ghana-nia': patch +'@openfn/language-wigal-sms': patch +--- + +Update example for wigal, update mock for bdr and nia From 68f0fc77837baf97a895cf4dc2fdc17558681919 Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 17:34:08 +0000 Subject: [PATCH 6/7] new ghana versions --- .changeset/real-monkeys-relate.md | 7 ------- packages/ghana-bdr/CHANGELOG.md | 6 ++++++ packages/ghana-bdr/package.json | 2 +- packages/ghana-bdr/src/mock.js | 7 ++++++- packages/ghana-bdr/src/util.js | 3 +++ packages/ghana-bdr/test/Adaptor.test.js | 5 ++++- packages/ghana-nia/CHANGELOG.md | 6 ++++++ packages/ghana-nia/package.json | 2 +- packages/ghana-nia/src/mock.js | 5 +++-- packages/ghana-nia/src/util.js | 8 ++++++-- packages/ghana-nia/test/Adaptor.test.js | 5 +++-- packages/wigal-sms/CHANGELOG.md | 6 ++++++ packages/wigal-sms/package.json | 2 +- 13 files changed, 46 insertions(+), 18 deletions(-) delete mode 100644 .changeset/real-monkeys-relate.md diff --git a/.changeset/real-monkeys-relate.md b/.changeset/real-monkeys-relate.md deleted file mode 100644 index fb4f74ec1..000000000 --- a/.changeset/real-monkeys-relate.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@openfn/language-ghana-bdr': patch -'@openfn/language-ghana-nia': patch -'@openfn/language-wigal-sms': patch ---- - -Update example for wigal, update mock for bdr and nia diff --git a/packages/ghana-bdr/CHANGELOG.md b/packages/ghana-bdr/CHANGELOG.md index a077fdc15..925ffcf7d 100644 --- a/packages/ghana-bdr/CHANGELOG.md +++ b/packages/ghana-bdr/CHANGELOG.md @@ -1,5 +1,11 @@ # @openfn/language-ghana-bdr +## 0.1.3 + +### Patch Changes + +- 7c677a5: Update mock and examples for bdr, add auth to test + ## 0.1.2 ### Patch Changes diff --git a/packages/ghana-bdr/package.json b/packages/ghana-bdr/package.json index 67bcb1203..353148115 100644 --- a/packages/ghana-bdr/package.json +++ b/packages/ghana-bdr/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/language-ghana-bdr", - "version": "0.1.2", + "version": "0.1.3", "description": "OpenFn ghana-bdr adaptor", "type": "module", "exports": { diff --git a/packages/ghana-bdr/src/mock.js b/packages/ghana-bdr/src/mock.js index c5b761e0d..cad64d8f7 100644 --- a/packages/ghana-bdr/src/mock.js +++ b/packages/ghana-bdr/src/mock.js @@ -88,7 +88,12 @@ export function createServer(url = 'http://tracker.chimgh.org') { const mockPool = agent.get(url); const sendBirthNotification = req => { - if (validateRequestBody(JSON.parse(req.body), sampleRequestBody)) { + const body = JSON.parse(req.body); + if ( + validateRequestBody(body, sampleRequestBody) && + body.username && + body.password + ) { return { statusCode: 200, responseOptions: { diff --git a/packages/ghana-bdr/src/util.js b/packages/ghana-bdr/src/util.js index f167dabd5..b5e99152f 100644 --- a/packages/ghana-bdr/src/util.js +++ b/packages/ghana-bdr/src/util.js @@ -128,6 +128,9 @@ export const request = (path, options) => { password, }) ); + + // TODO: Why do we need to _ALSO_ append authentication to "data" for mock? + args.data = { ...data, username, password }; } const response = await client.request(args); diff --git a/packages/ghana-bdr/test/Adaptor.test.js b/packages/ghana-bdr/test/Adaptor.test.js index dbf915e22..7088a0550 100644 --- a/packages/ghana-bdr/test/Adaptor.test.js +++ b/packages/ghana-bdr/test/Adaptor.test.js @@ -5,7 +5,10 @@ import { sendBirthNotification, execute } from '../src/Adaptor.js'; describe('sendBirthNotification', () => { it('upload birth notification', async () => { const state = { - configuration: {}, + configuration: { + username: 'test', + password: 'fake', + }, data: { registry_code: '', child: { diff --git a/packages/ghana-nia/CHANGELOG.md b/packages/ghana-nia/CHANGELOG.md index dac81e8ef..dd4f9cd88 100644 --- a/packages/ghana-nia/CHANGELOG.md +++ b/packages/ghana-nia/CHANGELOG.md @@ -1,5 +1,11 @@ # @openfn/language-ghana-nia +## 0.1.3 + +### Patch Changes + +- 7c677a5: Update mock and nia, add auth to test + ## 0.1.2 ### Patch Changes diff --git a/packages/ghana-nia/package.json b/packages/ghana-nia/package.json index 85e42381c..c1e66c5a9 100644 --- a/packages/ghana-nia/package.json +++ b/packages/ghana-nia/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/language-ghana-nia", - "version": "0.1.2", + "version": "0.1.3", "description": "OpenFn ghana-nia adaptor", "type": "module", "exports": { diff --git a/packages/ghana-nia/src/mock.js b/packages/ghana-nia/src/mock.js index 0b28badf8..d0cbf8caa 100644 --- a/packages/ghana-nia/src/mock.js +++ b/packages/ghana-nia/src/mock.js @@ -54,8 +54,9 @@ export function createServer(url = 'https://selfie.imsgh.org:2035') { const mockPool = agent.get(url); const sendNiaData = req => { - // if (validate(JSON.parse(req.body))) { - if (validateRequestBody(JSON.parse(req.body), sampleRequestBody)) { + const body = JSON.parse(req.body); + + if (validateRequestBody(body, sampleRequestBody) && body.merchantKey) { return { statusCode: 200, responseOptions: { diff --git a/packages/ghana-nia/src/util.js b/packages/ghana-nia/src/util.js index fc0bf8e6a..f8c9e5dab 100644 --- a/packages/ghana-nia/src/util.js +++ b/packages/ghana-nia/src/util.js @@ -107,7 +107,7 @@ export const request = (path, options) => { ...otherOptions, }; - if (data.merchantkey) { + if (data.merchantKey) { throwError( "Please don't supply `merchantKey` in your request body. " + 'The adaptor will append it automatically.' @@ -115,8 +115,12 @@ export const request = (path, options) => { } if (data) { - console.log('hello?'); + // Please note that the BDR systems requires that we add username & + // password attributes to the POST body. args.body = JSON.stringify({ ...data, merchantKey }); + + // TODO: Why do we need to _ALSO_ append authentication to "data" for mock? + args.data = { ...data, merchantKey }; } const response = await client.request(args); diff --git a/packages/ghana-nia/test/Adaptor.test.js b/packages/ghana-nia/test/Adaptor.test.js index c9a392b77..ab84fdefc 100644 --- a/packages/ghana-nia/test/Adaptor.test.js +++ b/packages/ghana-nia/test/Adaptor.test.js @@ -5,9 +5,10 @@ import { registerChild, execute } from '../src/Adaptor.js'; describe('registerChild', () => { it('upload to NIA for Ghana Card Number', async () => { const state = { - configuration: {}, + configuration: { + merchantKey: '123', + }, data: { - merchantKey: '7834rtyfh8h834hf7834hf', babyData: { dateOfBirth: '2024-11-12', fatherName: 'kwamena Ahoi Jn', diff --git a/packages/wigal-sms/CHANGELOG.md b/packages/wigal-sms/CHANGELOG.md index 50ba7a130..119d301da 100644 --- a/packages/wigal-sms/CHANGELOG.md +++ b/packages/wigal-sms/CHANGELOG.md @@ -1,5 +1,11 @@ # @openfn/language-wigal-sms +## 0.1.3 + +### Patch Changes + +- 7c677a5: Update example for wigal sms + ## 0.1.2 ### Patch Changes diff --git a/packages/wigal-sms/package.json b/packages/wigal-sms/package.json index 0edb5a121..dd37f1745 100644 --- a/packages/wigal-sms/package.json +++ b/packages/wigal-sms/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/language-wigal-sms", - "version": "0.1.2", + "version": "0.1.3", "description": "OpenFn wigal-sms adaptor", "type": "module", "exports": { From 6dfaa9aeb746947caa746b9360f3a1a4d66b17de Mon Sep 17 00:00:00 2001 From: Taylor Downs Date: Fri, 31 Jan 2025 17:41:05 +0000 Subject: [PATCH 7/7] validation of auth doesn't work with mock --- packages/ghana-bdr/src/mock.js | 6 +----- packages/ghana-nia/src/mock.js | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/ghana-bdr/src/mock.js b/packages/ghana-bdr/src/mock.js index cad64d8f7..f68692d56 100644 --- a/packages/ghana-bdr/src/mock.js +++ b/packages/ghana-bdr/src/mock.js @@ -89,11 +89,7 @@ export function createServer(url = 'http://tracker.chimgh.org') { const sendBirthNotification = req => { const body = JSON.parse(req.body); - if ( - validateRequestBody(body, sampleRequestBody) && - body.username && - body.password - ) { + if (validateRequestBody(body, sampleRequestBody)) { return { statusCode: 200, responseOptions: { diff --git a/packages/ghana-nia/src/mock.js b/packages/ghana-nia/src/mock.js index d0cbf8caa..0f5539072 100644 --- a/packages/ghana-nia/src/mock.js +++ b/packages/ghana-nia/src/mock.js @@ -56,7 +56,7 @@ export function createServer(url = 'https://selfie.imsgh.org:2035') { const sendNiaData = req => { const body = JSON.parse(req.body); - if (validateRequestBody(body, sampleRequestBody) && body.merchantKey) { + if (validateRequestBody(body, sampleRequestBody)) { return { statusCode: 200, responseOptions: {