n8n-nodes-nextcloud-tables
Version:
Production-Ready n8n Node für Nextcloud Tables - Vollständige API-Abdeckung mit erweiterten Filtern, Multi-Column-Sorting, CSV-Import und professioneller Datenvalidierung
149 lines (148 loc) • 3.39 kB
TypeScript
export interface Table {
id: number;
title: string;
emoji?: string;
description?: string;
ownership: string;
ownerDisplayName: string;
createdBy: string;
createdAt: string;
lastEditBy: string;
lastEditAt: string;
archived: boolean;
favorite: boolean;
isShared: boolean;
onSharePermissions: {
read: boolean;
create: boolean;
update: boolean;
delete: boolean;
manage: boolean;
};
hasShares: boolean;
columnsCount: number;
rowsCount: number;
views: View[];
}
export interface View {
id: number;
title: string;
emoji?: string;
tableId: number;
ownership: string;
ownerDisplayName: string;
createdBy: string;
createdAt: string;
lastEditBy: string;
lastEditAt: string;
description?: string;
isShared: boolean;
onSharePermissions: {
read: boolean;
create: boolean;
update: boolean;
delete: boolean;
manage: boolean;
};
hasShares: boolean;
favorite: boolean;
columnsCount: number;
rowsCount: number;
filter: Array<{
columnId: number;
operator: string;
value: any;
}>;
sort: Array<{
columnId: number;
mode: 'ASC' | 'DESC';
}>;
}
export interface Column {
id: number;
title: string;
tableId: number;
createdBy: string;
createdAt: string;
lastEditBy: string;
lastEditAt: string;
type: string;
subtype: string;
mandatory: boolean;
description: string;
orderWeight: number;
numberDefault?: number;
numberMin?: number;
numberMax?: number;
numberDecimals?: number;
numberPrefix?: string;
numberSuffix?: string;
textDefault?: string;
textAllowedPattern?: string;
textMaxLength?: number;
selectionOptions?: string;
selectionDefault?: string;
datetimeDefault?: string;
usergroupDefault?: string;
usergroupMultipleItems?: boolean;
usergroupSelectUsers?: boolean;
usergroupSelectGroups?: boolean;
usergroupSelectTeams?: boolean;
showUserStatus?: boolean;
}
export interface Row {
id: number;
tableId: number;
createdBy: string;
createdAt: string;
lastEditBy: string;
lastEditAt: string;
data: Array<{
columnId: number;
value: any;
}>;
}
export interface Context {
id: number;
name: string;
iconName: string;
description: string;
owner: string;
ownerType: number;
}
export interface Share {
id: number;
sender: string;
receiver: string;
receiverDisplayName: string;
receiverType: string;
nodeId: number;
nodeType: string;
permissionRead: boolean;
permissionCreate: boolean;
permissionUpdate: boolean;
permissionDelete: boolean;
permissionManage: boolean;
createdAt: string;
createdBy: string;
}
export interface ImportState {
found_columns_count: number;
matching_columns_count: number;
created_columns_count: number;
inserted_rows_count: number;
errors_parsing_count: number;
errors_count: number;
}
export interface OCSResponse<T> {
ocs: {
meta: {
status: string;
statuscode: number;
message?: string;
totalitems?: string;
itemsperpage?: string;
};
data: T;
};
}