import CollabServer from '@pdftron/collab-server'
import SQLResolverGenerator from '@pdftron/collab-sql-resolver-generator'
const resolvers = SQLResolverGenerator({
client: 'pg',
connection: {
host: 'localhost',
user: 'postgres',
password: 'admin',
database: 'collab'
},
info: {
Users: {
table: "Users",
columns: {
id: 'Id',
userName: 'UserName',
email: 'Email',
type: 'Type',
createdAt: 'CreatedDate',
updatedAt: 'ModifiedDate'
}
},
Annotations: {
table: "Annotations",
columns: {
id: 'Id',
xfdf: 'Xfdf',
annotContents: 'Content',
authorId: 'CreatedByUserId',
annotationId: 'AnnotationId',
documentId: 'DocumentId',
pageNumber: 'PageNumber',
createdAt: 'CreatedDate',
updatedAt: 'ModifiedDate',
inReplyTo: 'InReplyTo',
}
},
Documents: {
table: 'Documents',
columns: {
id: 'Id',
authorId: 'CreatedByUserId',
isPublic: 'IsPublic',
name: 'DocumentName',
createdAt: 'CreatedDate',
updatedAt: 'ModifiedDate'
}
},
AnnotationMembers: {
table: 'AnnotationMembers',
columns: {
id: 'Id',
userId: 'CreatedByUserId',
documentId: 'DocumentId',
annotationId: 'MarkupId',
lastRead: 'LastRead',
createdAt: 'CreatedDate',
updatedAt: 'ModifiedDate',
annotationCreatedAt: 'MarkupCreatedDate'
}
},
DocumentMembers: {
table: 'MarkupDocuments',
columns: {
id: 'Id',
userId: 'CreatedByUserId',
documentId: 'DocumentId',
lastRead: 'LastRead',
createdAt: 'CreatedDate',
updatedAt: 'ModifiedDate'
}
},
Mentions: {
table: 'Mentions',
columns: {
id: 'Id',
userId: 'UserId',
documentId: 'DocumentId',
annotationId: 'MarkupId',
createdAt: 'CreatedDate',
updatedAt: 'ModifiedDate'
}
}
}
});
const server = new CollabServer({
resolvers
})
server.start(3000);