github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/tests/system/konnector/index.js (about)

     1  let fs = require('fs')
     2  let path = require('path')
     3  let http = require('http')
     4  
     5  let fields = JSON.parse(process.env['COZY_FIELDS'])
     6  let credentials = process.env['COZY_CREDENTIALS']
     7  let instance = process.env['COZY_URL']
     8  
     9  let cozyPayload = process.env['COZY_PAYLOAD']
    10  let payload
    11  try {
    12    if (cozyPayload[0] == '@') {
    13      let filepath = path.resolve(__dirname, cozyPayload.slice(1))
    14      payload = { fromFile: JSON.parse(fs.readFileSync(filepath)) }
    15    } else {
    16      payload = JSON.parse(cozyPayload)
    17    }
    18  } catch (e) {
    19    payload = { error: e }
    20  }
    21  
    22  let url = instance + 'data/io.cozy.accounts/' + fields.account
    23  let options = {
    24    headers: {
    25      Authorization: `Bearer ${credentials}`,
    26    },
    27  }
    28  
    29  http.get(url, options, (res) => {
    30    if (res.statusCode !== 200) {
    31      throw new Error(`Status Code: ${res.statusCode}`)
    32    }
    33    res.setEncoding('utf8')
    34    let rawData = ''
    35    res.on('data', (chunk) => {
    36      rawData += chunk
    37    })
    38    res.on('end', () => {
    39      let account = JSON.parse(rawData)
    40      let data = { account, fields, payload }
    41      fs.writeFileSync(account.data.log, JSON.stringify(data, null, '  '))
    42    })
    43  })