1.0.15 • Published 1 year ago

flotiq-excel-migrator v1.0.15

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Flotiq-Excel migrator

This module migrates Flotiq data to and from an xlsx file. It was made solely for flotiq-cli. However, you can use it independently.

Setup

Add this module to your project and import functions from flotiq-xlsx-migrate.js.

Run yarn to install packages.

Export

exportXlsx is the module's function for exporting Flotiq CTD and CO to the xlsx file.

Usage

Call function exportXlsx with options object as an attribute, for example:

let flotiqXlsx = require("flotiq-excel-migrator")
let exportOptions = { 
    apiKey: "[Flotiq API Key]",
    ctdName: "[CTD API Name]"
}
const exportFromFlotiq = async () => {
    let result = await flotiqXlsx.exportXlsx(exportOptions);
    console.log(result);
}
exportFromFlotiq();

Function returns the following information:

  • FilePath
  • Number of Content Objects for export
  • Number of Content Objects successfully exported
  • errors data

Options parameters

Options object accepts the following parameters:

  • apiKey - API key to your Flotiq account,
  • ctdName - API name of Content Type Definition you wish to export,
  • filePath (optional) - the directory to which the xlsx file is to be saved, the current directory by default,
  • limit (optional) - Number of Content Objects you wish to export, exports up to 10 000 Content Objects by default,
  • saveFile (optional) - boolean value determining whether to save the xlsx file in the directory, true by default. If the value is false, the function will return the parameter data with data from Flotiq converted for MS Excel,
  • logResults (optional) - boolean value determining whether to type out results into the console, true by default.

Notes

  • Exported CTD is saved as plain text of properties id's. No metadata is being exported.
  • Max string length for all values is set to 30.000 because MS Excel has trouble handling text with length > 30 000 in one cell.

Result example

{
  directoryPath: '[_dirname]//test.xlsx',
  errors: null,
  coTotal: 3,
  co_success: 3
}

Import

importXlsx is the module's function for importing an xlsx file to Flotiq.

Usage

Call function exportXlsx with options object as an attribute, for example:

let flotiqXlsx = require("flotiq-excel-migrator")
let importOptions = { 
    apiKey: "[Flotiq API Key]",
    ctdName: "[CTD API Name]",
    filePath: "[path to xlsx file]"
}
const importToFlotiq = async () => {
    let result = await flotiqXlsx.importXlsx(importOptions);
    console.log(result);
}
importToFlotiq();

Function returns the following promise: For every sheet in the workbook:

  • Number of Content Objects successfully imported
  • Number of errors in Content Object import
  • errors data (object)

If options validation error occurs, the function will not return the number of errors and CO exported; instead, it will return information about the invalid options parameter.

Options parameters

Options object accepts the following parameters:

  • apiKey - API key to your Flotiq account,
  • ctdName - API name of Content Type Definition you wish to export,
  • filePath - the directory to the xlsx file you wish to import data from,
  • limit (optional) - number of Content Objects you wish to import, imports up to 10 000 Content Objects by default,
  • logResults (optional) - boolean value determining whether to type out results into the console, true by default.
  • updateExisting (optional) - boolean value determining whether to update existing Content Objects, true by default.
  • batchLimit (optional) - number of Content Objects imported per batch call, 100 by default.

Notes

  • valid XLSX file looks just like the one that exportXlsx saves. The first row on the sheet (header) should have the names of CTD's properties. Every following row is a separate Content Object, for example:
idnameage
person-1John30
person-2Alex20
  • importXlsx allows you to import many sheets from the same workbook. However, these sheets must be dedicated to the same CTD and have this CTD's properties in the header.
  • Parameter LIMIT limits the number of Content Objects you will import from XLSX works individually for every sheet in the workbook.

Result example

Notice that the import function gives different results for every sheet from your xlsx file, so to read result errors result.[excel sheet name].sheetErrors.

{
  Sheet1: {
    sheetImportedCoCount: 98,
    sheetErrorsCount: 2,
    sheetErrors: [ [Object] ]
  }
  Sheet2: {
    sheetImportedCoCount: 100,
    sheetErrorsCount: 0,
    sheetErrors: []
    }
}

Data mapping

The form in which Flotiq data is exported to / imported from xlsx varies on property type:

Flotiq field propertyForm in which data is exported to xlsx
TextText
TextareaText
MarkdownText (with markdown syntax)
Rich textText (with HTML tags)
EmailText
NumberNumber (with ms excel's default decimal separator)
RadioText
CheckboxTRUE / FALSE
SelectText
RelationAPI Url's in the form of text, separated with commas, for example: /api/v1/content/[ctdName]/[coName1],/api/v1/content/[ctdName]/[coName2]
ListJSON
GeoJSON
MediaAPI Url in form of text, separated with commas, for example: /api/v1/content/_media/[mediaId1],/api/v1/content/_media/[mediaId2]
Date timeDate
BlockJSON

Notes

  • Max string length for all values is set to 30.000 because MS Excel has trouble handling text with length > 30 000 in one cell.
1.0.15

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.1

1 year ago