metadata-based-explorer1
Version:
Box UI Elements
63 lines (57 loc) • 1.81 kB
JavaScript
/**
*
* @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;