* feat: share url slug * feat: add col urlId * feat: allow updating urlId * fix: typo * fix: migrations * fix: urlId model validation * fix: input label * fix: debounce slug request * feat: link preview * fix: send slug variant in response if available * fix: temporary redirect to slug variant if available * fix: move up the custom link field * fix: process and display backend err * fix: reset custom link state on popover close and remove isCopied * fix: document link preview * fix: set urlId when available * fix: keep unique(urlId, teamId) * fix: codeql * fix: get rid of preview type * fix: width not needed for block elem * fix: migrations * fix: array not required * fix: use val * fix: validation on shareId and test * fix: allow clearing urlId * fix: do not escape * fix: unique error text * fix: keep team
27 lines
695 B
TypeScript
27 lines
695 B
TypeScript
import { Share } from "@server/models";
|
|
import { presentUser } from ".";
|
|
|
|
export default function present(share: Share, isAdmin = false) {
|
|
const data = {
|
|
id: share.id,
|
|
documentId: share.documentId,
|
|
documentTitle: share.document?.title,
|
|
documentUrl: share.document?.url,
|
|
published: share.published,
|
|
url: share.canonicalUrl,
|
|
urlId: share.urlId,
|
|
createdBy: presentUser(share.user),
|
|
includeChildDocuments: share.includeChildDocuments,
|
|
lastAccessedAt: share.lastAccessedAt || undefined,
|
|
views: share.views || 0,
|
|
createdAt: share.createdAt,
|
|
updatedAt: share.updatedAt,
|
|
};
|
|
|
|
if (!isAdmin) {
|
|
delete data.lastAccessedAt;
|
|
}
|
|
|
|
return data;
|
|
}
|