/* eslint-disable camelcase */
const axios = require('axios')
const config = require('./config')

const headers = {
  Accept: 'application/json',
  Authorization: config.authorization,
  Cookie: config.cookie,
  'content-type': 'application/json',
}

const COZY_PREFIX = 'cozy35ba44d2d1749e6f21646edce51e7190'

const ENEDIS_ACCOUNT_ID = '70e68b8450cee09fe2f077610901094d'
const dataEnedisAccount = JSON.stringify({
  id: ENEDIS_ACCOUNT_ID,
  account_type: 'enedissgegrandlyon',
  name: '',
  auth: {
    address: '6 Rue Vaillant Couturier',
    city: 'Vénissieux',
    firstname: 'Jane',
    lastname: 'Doe',
    pointId: '19170766804121',
    postalCode: '69200',
  },
  data: {
    consentId: 43,
    expirationDate: '2023-09-26',
    offPeakHours: '22H00-6H00',
  },
  identifier: 'address',
  state: null,
})

const GRDF_ACCOUNT_ID = '89e68b8450cee09fe2f077610901094d'
const dataGrdfAccount = JSON.stringify({
  id: GRDF_ACCOUNT_ID,
  account_type: 'grdfgrandlyon',
  auth: {
    credentials_encrypted:
      'bmFjbMKrNCS+4Liakxdu+xNu9I3sSyvda8iAp0o3U3OAymbIeoLhLtxPdsa+3mu/8yTnDudBcJo=',
    login: 'test',
  },
  identifier: 'login',
  state: null,
})

const EGL_ACCOUNT_ID = '90e68b8450cee09fe2f077610901094d'
const dataEglAccount = JSON.stringify({
  id: EGL_ACCOUNT_ID,
  account_type: 'eglgrandlyon',
  auth: {
    credentials_encrypted:
      'bmFjbHI5OoL+VNCT6JDFYea1dNiBGGNJM1zY0M4uWcjhALJcQT9uk9p9WPD7+1OryCAoYf9eaSE=',
    login: 'test',
  },
  identifier: 'login',
  state: null,
})

const dataEnedisTrigger = JSON.stringify({
  data: {
    attributes: {
      _id: '3ed832cec67e6e0b2c6382edd30df11c',
      domain: 'cozy.tools:8080',
      prefix: COZY_PREFIX,
      type: '@cron',
      worker: 'konnector',
      arguments: '0 47 8 * * *',
      debounce: '',
      options: null,
      message: {
        account: ENEDIS_ACCOUNT_ID,
        konnector: 'enedissgegrandlyon',
      },
      cozyMetadata: {
        doctypeVersion: '1',
        metadataVersion: 1,
        createdAt: '2020-10-09T08:00:00.6092798Z',
        createdByApp: 'ecolyo',
        updatedAt: '2020-10-09T08:00:00.6092798Z',
      },
    },
  },
})

const dataGrdfTrigger = JSON.stringify({
  data: {
    attributes: {
      _id: '4ed832cec67e6e0b2c6382edd30df11c',
      domain: 'cozy.tools:8080',
      prefix: COZY_PREFIX,
      type: '@cron',
      worker: 'konnector',
      arguments: '0 47 8 * * *',
      debounce: '',
      options: null,
      message: {
        account: GRDF_ACCOUNT_ID,
        konnector: 'grdfgrandlyon',
      },
      cozyMetadata: {
        doctypeVersion: '1',
        metadataVersion: 1,
        createdAt: '2020-10-09T08:00:00.6092798Z',
        createdByApp: 'ecolyo',
        updatedAt: '2020-10-09T08:00:00.6092798Z',
      },
    },
  },
})

const dataEglTrigger = JSON.stringify({
  data: {
    attributes: {
      _id: '5ed832cec67e6e0b2c6382edd30df11c',
      domain: 'cozy.tools:8080',
      prefix: COZY_PREFIX,
      type: '@cron',
      worker: 'konnector',
      arguments: '0 47 8 * * *',
      debounce: '',
      options: null,
      message: {
        account: EGL_ACCOUNT_ID,
        konnector: 'eglgrandlyon',
      },
      cozyMetadata: {
        doctypeVersion: '1',
        metadataVersion: 1,
        createdAt: '2020-10-09T08:00:00.6092798Z',
        createdByApp: 'ecolyo',
        updatedAt: '2020-10-09T08:00:00.6092798Z',
      },
    },
  },
})

async function launch() {
  // Enedis
  await axios({
    method: 'put',
    url: `http://cozy.tools:8080/data/io.cozy.accounts/${ENEDIS_ACCOUNT_ID}`,
    headers: headers,
    data: dataEnedisAccount,
  })
    .then(function (response) {
      console.log(JSON.stringify(response.data))
    })
    .catch(function (error) {
      console.log(error)
    })

  await axios({
    method: 'post',
    url: 'http://cozy.tools:8080/jobs/triggers',
    headers: headers,
    data: dataEnedisTrigger,
  })
    .then(function (response) {
      console.log(JSON.stringify(response.data))
    })
    .catch(function (error) {
      console.log(error)
    })

  // GRDF
  await axios({
    method: 'put',
    url: `http://cozy.tools:8080/data/io.cozy.accounts/${GRDF_ACCOUNT_ID}`,
    headers: headers,
    data: dataGrdfAccount,
  })
    .then(function (response) {
      console.log(JSON.stringify(response.data))
    })
    .catch(function (error) {
      console.log(error)
    })

  await axios({
    method: 'post',
    url: 'http://cozy.tools:8080/jobs/triggers',
    headers: headers,
    data: dataGrdfTrigger,
  })
    .then(function (response) {
      console.log(JSON.stringify(response.data))
    })
    .catch(function (error) {
      console.log(error)
    })

  // EGL
  await axios({
    method: 'put',
    url: `http://cozy.tools:8080/data/io.cozy.accounts/${EGL_ACCOUNT_ID}`,
    headers: headers,
    data: dataEglAccount,
  })
    .then(function (response) {
      console.log(JSON.stringify(response.data))
    })
    .catch(function (error) {
      console.log(error)
    })

  await axios({
    method: 'post',
    url: 'http://cozy.tools:8080/jobs/triggers',
    headers: headers,
    data: dataEglTrigger,
  })
    .then(function (response) {
      console.log(JSON.stringify(response.data))
    })
    .catch(function (error) {
      console.log(error)
    })
}

launch()