Skip to content
Snippets Groups Projects
request.js 3.64 KiB
Newer Older
// @ts-check
const { log } = require('cozy-konnector-libs')

/**
 * Query SGE in order to get info
 * @param {number} pointId
 * @param {string} userLogin
 * @param {string} startDt
 * @param {string} endDt
 * @returns {string}
 */
function userMesureDetailles(
  pointId,
  userLogin,
  startDt,
  endDt,
  mesureType = 'ENERGIE',
  unit = 'EA'
) {
  log(
    'info',
    `Query data ${mesureType}/${unit} between ${startDt} and ${endDt}`
  )
  return `<?xml version='1.0' encoding='utf-8'?>
  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:v2="http://www.enedis.fr/sge/b2b/services/consultationmesuresdetaillees/v2.0"
     xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0">
     <soapenv:Header/>
     <soapenv:Body>
        <v2:consulterMesuresDetaillees>
           <demande>
              <initiateurLogin>${userLogin}</initiateurLogin>
              <pointId>${pointId}</pointId>
              <mesuresTypeCode>${mesureType}</mesuresTypeCode>
              <grandeurPhysique>${unit}</grandeurPhysique>
              <soutirage>true</soutirage>
              <injection>false</injection>
              <dateDebut>${startDt}</dateDebut>
              <dateFin>${endDt}</dateFin>
              <mesuresCorrigees>false</mesuresCorrigees>
              <accordClient>true</accordClient>
           </demande>
        </v2:consulterMesuresDetaillees>
     </soapenv:Body>
  </soapenv:Envelope>
  `
}

/**
 * Get user technical data
 * @param {number} pointId
 * @param {string} userLogin
 * @returns {string}
 */
function userTechnicalData(pointId, userLogin) {
  log('info', `Query userMesureDetailles`)
  return `<?xml version='1.0' encoding='utf-8'?>
  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:v2="http://www.enedis.fr/sge/b2b/services/consulterdonneestechniquescontractuelles/v1.0"
     xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0">
     <soapenv:Header/>
     <soapenv:Body>
        <v2:consulterDonneesTechniquesContractuelles>
           <pointId>${pointId}</pointId>
           <loginUtilisateur>${userLogin}</loginUtilisateur>
           <autorisationClient>true</autorisationClient>
        </v2:consulterDonneesTechniquesContractuelles>
     </soapenv:Body>
  </soapenv:Envelope>
  `
}

Hugo SUBTIL's avatar
Hugo SUBTIL committed
/**
 * Get user max power
 * @param {number} pointId
 * @param {string} userLogin
 * @param {string} startDt
 * @param {string} endDt
 * @returns {string}
 */
function userMaxPower(pointId, userLogin, startDt, endDt) {
  log('info', `Query userMesureDetailles`)
  return `<?xml version='1.0' encoding='utf-8'?>
  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:v2="http://www.enedis.fr/sge/b2b/services/consultationmesuresdetaillees/v2.0"
     xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0">
      <soapenv:Header/>
      <soapenv:Body>
          <v2:consulterMesuresDetaillees>
              <demande>
                  <initiateurLogin>${userLogin}</initiateurLogin>
                  <pointId>${pointId}</pointId>
                  <mesuresTypeCode>PMAX</mesuresTypeCode>
                  <grandeurPhysique>PMA</grandeurPhysique>
                  <soutirage>true</soutirage>
                  <injection>false</injection>
                  <dateDebut>${startDt}</dateDebut>
                  <dateFin>${endDt}</dateFin>
                  <mesuresPas>P1D</mesuresPas>
                  <mesuresCorrigees>false</mesuresCorrigees>
                  <accordClient>true</accordClient>
              </demande>
          </v2:consulterMesuresDetaillees>
      </soapenv:Body>
  </soapenv:Envelope>
  `
}

module.exports = {
  userTechnicalData,
Hugo SUBTIL's avatar
Hugo SUBTIL committed
  userMaxPower,
  userMesureDetailles,
}