Skip to content
Snippets Groups Projects
request.js 3.64 KiB
Newer Older
  • Learn to ignore specific revisions
  • // @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,
    }