-
-
Save userhooke/51f0160fdebeb0bab3a3a159acdff9d5 to your computer and use it in GitHub Desktop.
const ynab = require("ynab"); | |
const ynabAPI = new ynab.API(process.env.YNAB_TOKEN); | |
const adMaioraBudgetId = process.env.BUDGET_ID; | |
const monoDebitAccountId = process.env.MONO_DEBIT_ACCOUNT_ID; | |
module.exports.handler = (event, context, callback) => { | |
const body = JSON.parse(event.body); | |
console.log('Event body: ', body); | |
if (!body || !body.data || !body.data.statementItem) { | |
callback(null, { | |
statusCode: 400, | |
headers: {}, | |
body: JSON.stringify({error: "No data provided :("}) | |
}); | |
} | |
callback(null, { | |
statusCode: 200, | |
headers: {}, | |
body: JSON.stringify({status: 'Ok!'}) | |
}); | |
ynabAPI.transactions | |
.createTransaction(adMaioraBudgetId, { | |
transaction: { | |
account_id: monoDebitAccountId, | |
date: ynab.utils.getCurrentDateInISOFormat(), | |
amount: body.data.statementItem.amount + "0", | |
payee_name: body.data.statementItem.description | |
} | |
}) | |
.then(res => { | |
console.log('YNAB Response: ', res); | |
}) | |
.catch(err => { | |
console.error('YNAB error: ', err); | |
}); | |
}; |
mrmauadi
commented
Jan 14, 2024
const ynab = require ( "ynab" ) ;
const ynabAPI = ynab جديد . API ( عملية . env . YNAB_TOKEN ) ;
const adMaioraBudgetId = معالجة . بيئة . BUDGET_ID ;
const monoDebitAccountId = العملية . بيئة . MONO_DEBIT_ACCOUNT_ID ;
وحدة . الصادرات . المعالج = ( الحدث ، السياق ، رد الاتصال ) => {
جسم ثابت = JSON . تحليل ( حدث . الجسم ) ;
وحدة التحكم . سجل ( 'نص الحدث:' ، الجسم ) ؛
إذا ( ! الجسم || ! الجسم . البيانات || ! الجسم . البيانات . بيانItem ) {
رد الاتصال ( فارغة ، {
رمز الحالة : 400 ,
العناوين : { } ,
الجسم : جيسون . stringify ( { خطأ : "لم يتم تقديم بيانات :(" } )
} ) ;
}
رد الاتصال ( فارغة ، {
رمز الحالة : 200 ,
العناوين : { } ,
الجسم : جيسون . سلسلة ( { الحالة : 'حسنًا!' } )
} ) ;
ynabAPI . المعاملات
. إنشاء المعاملات ( adMaioraBudgetId ، {
عملية : {
account_id : monoDebitAccountId ,
التاريخ : يناب . يستخدم . getCurrentDateInISOFormat ( ) ,
المبلغ : الجسم . بيانات . بيان البند . المبلغ + "0" ،
payee_name : الجسم . بيانات . بيان البند . وصف
}
} )
. ثم ( الدقة => {
وحدة التحكم . سجل ( 'استجابة YNAB:' ، الدقة ) ؛
} )
. قبض ( يخطئ => {
وحدة التحكم . خطأ ( 'خطأ YNAB:' ، يخطئ ) ؛
} ) ;
} ;