@c8y/client
Version:
Client application programming interface to access the Cumulocity IoT-Platform REST services.
63 lines • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeviceRegistrationBulkService = void 0;
const tslib_1 = require("tslib");
const form_data_1 = tslib_1.__importDefault(require("form-data"));
/**
* This class allows for bulk registering devices.
*/
class DeviceRegistrationBulkService {
/**
* Instantiate class and assign client
* @param {IFetchClient} client
*/
constructor(client) {
this.client = client;
}
/**
* A new device registration as bulk.
*
* @param {Stream | Buffer} csv
*
* @returns Response wrapped in [[IResult]]
*
* **Example**
* ```typescript
*
* const csvString = `
* ID,CREDENTIALS,TENANT,TYPE,NAME,ICCID,IDTYPE,PATH,SHELL
* e2eDeviceRegistrationId,e2epassword123!,e2edocker,c8y_e2eDevice,e2eDevice,123456789,89456,e2eDeviceGroup,1
* 900001,e2epassword123!,e2edocker,c8y_e2eDevice1,e2eDevice1,123456789,89456,e2eDeviceGroup,1
* 900002,e2epassword123!,e2edocker,c8y_e2eDevice2,e2eDevice2,123456789,89456,e2eDeviceGroup,1`.trim();
*
* const csvBuffer = Buffer.from(csvString):
*
* (async () => {
* const {data, res} = await deviceRegistrationBulkService.create(csvBuffer);
* })();
* ```
*/
async create(inputFile) {
let csv = inputFile;
const url = '/devicecontrol/bulkNewDeviceRequests';
const method = 'POST';
const body = new form_data_1.default();
let fileName = 'bulk-registration.csv';
if (typeof File !== 'undefined' && csv instanceof File) {
fileName = csv.name;
const checkPattern = /\.csv$/;
if (csv.name.match(checkPattern)) {
csv = new File([csv], csv.name, { type: 'text/csv' });
}
}
body.append('file', csv, fileName);
const headers = {
accept: 'application/json'
};
const res = await this.client.fetch(url, { method, body, headers });
const data = await res.json();
return { res, data };
}
}
exports.DeviceRegistrationBulkService = DeviceRegistrationBulkService;
//# sourceMappingURL=DeviceRegistrationBulkService.js.map