@facturacr/atv-sdk
Version:
Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.
32 lines (27 loc) • 1.06 kB
text/typescript
import fs from 'fs'
import genJSON from '@src/lib/genJSON'
import { parseOptions, genClaveObj, genString } from '@src/lib/genClave'
import requestStub from '@test/stubs/frontendRequest.stub'
import { ClientPayload } from '@src/types/globalInterfaces'
const frontEndRequest: ClientPayload = requestStub
const SOURCE_P12_URI = process.env.SOURCE_P12_URI
const SOURCE_P12_PASSPORT = process.env.SOURCE_P12_PASSPORT
const pem = fs.readFileSync(SOURCE_P12_URI, 'binary')
const outputSourceURI = process.env.SOURCE_URI_XML_OUTPUT
async function main(): Promise<void> {
const parsedOpts = parseOptions(frontEndRequest)
const claveObj = genClaveObj(parsedOpts)
const claveStr = genString(claveObj)
const consecutivo = Object.values(claveObj.consecutivo).join('')
const date = new Date()
const XML = await genJSON(frontEndRequest, date.toISOString(), claveStr, consecutivo, {
buffer: pem,
password: SOURCE_P12_PASSPORT,
base64: false
})
const data = XML
fs.writeFile(outputSourceURI, data, (err) => {
if (err) throw err
})
}
main()