UNPKG

metadata-based-explorer1

Version:
63 lines (57 loc) 1.81 kB
/** * * @file File for some simple dom utilities * @author Box */ import omit from 'lodash/omit'; import { getFileExtension } from './file'; var convertISODateToSeconds = function convertISODateToSeconds(dateString) { return dateString ? new Date(dateString).getTime() / 1000 : null; }; var convertMetadata = function convertMetadata(metadata) { var md = {}; Object.keys(metadata).forEach(function (scope) { Object.keys(metadata[scope]).forEach(function (templateKey) { var nonconformingInstance = metadata[scope][templateKey]; var data = omit(nonconformingInstance, ['$id', '$parent', '$type', '$typeScope', '$typeVersion', '$version']); md = { data: data, id: nonconformingInstance.$id, metadataTemplate: { type: 'metadata-template', templateKey: templateKey } }; }); }); return md; }; var convertEntry = function convertEntry(entry) { var item = entry.item, metadata = entry.metadata; return { contentUpdated: convertISODateToSeconds(item.content_modified_at), contentCreated: convertISODateToSeconds(item.content_created_at), date: convertISODateToSeconds(item.content_modified_at), extension: getFileExtension(item.name), id: item.id, lastUpdatedByName: item.modified_by.name, metadata: convertMetadata(metadata), name: item.name, itemSize: item.size, type: item.type }; }; var convertEntries = function convertEntries(entries) { return entries.map(function (entry) { return convertEntry(entry); }); }; var flattenResponse = function flattenResponse(response) { return { items: convertEntries(response.entries), nextMarker: response.next_marker, previousMarker: response.prev_marker }; }; export default flattenResponse;