diff --git a/api/handlers/airtable.js b/api/handlers/airtable.js index 1770bb7..1ca547b 100644 --- a/api/handlers/airtable.js +++ b/api/handlers/airtable.js @@ -115,12 +115,34 @@ const airtable = module.exports = (function () { }); }; + const updateRecord = (params) => { + return new Promise((resolve, reject) => { + + base(params.tableName) + .update( + params.recordId, + { + ...params.updatedFieldData + }, + function(err, record) { + if (err) { + console.error(err); + reject(err); + } else { + resolve(record) + } + } + ); + }); + }; + return { createRecord, deleteRecord, fetchBaseRecords, fetchFilteredRecords, - fetchTableRecord + fetchTableRecord, + updateRecord }; })(); \ No newline at end of file diff --git a/api/modules/schedule.js b/api/modules/schedule.js index 7c29aaf..7a78ca0 100644 --- a/api/modules/schedule.js +++ b/api/modules/schedule.js @@ -45,7 +45,23 @@ var schedule = module.exports = (function () { const updateSetblock = function (params) { return new Promise(function(resolve, reject) { - resolve('In progress') + const { setblockId, updatedFields } = params + let updatedFieldData = {} + Object.keys(updatedFields).map(k => { + if (k == 'blockFraction') updatedFieldData['Blocks'] = updatedFields[k] + if (k == 'issueUrl') updatedFieldData['Issue'] = updatedFields[k] + if (k == 'description') updatedFieldData['Description'] = updatedFields[k] + }) + + airtable.updateRecord({ + tableName: 'Scheduling', + recordId: setblockId, + updatedFieldData + }) + .then(record => { + resolve('Updated Setblock: ' + setblockId) + }) + .catch(reject) }); };