-
-
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:' ، يخطئ ) ؛
} ) ;
} ;