feat: relation field and picker
This commit is contained in:
1 parent
b45c99be3b
commit
37a77c9c22
92 files changed
+6826
-80
No files matched your search
@@ -11,15 +11,29 @@ type TypedEntry struct {
|
||||
entry.Entry
|
||||
ContentTypeKey string
|
||||
Media map[string]EntryMedia
|
||||
Relations map[string]EntryRelations
|
||||
}
|
||||
|
||||
func typedEntry(owner contenttype.ContentType, record entry.Entry, resolver *mediaResolver) (TypedEntry, error) {
|
||||
type entryResolvers struct {
|
||||
media *mediaResolver
|
||||
relations *relationResolver
|
||||
}
|
||||
|
||||
func newEntryResolvers(images image.Repository, contentTypes contenttype.Repository, entries entry.Repository) *entryResolvers {
|
||||
return &entryResolvers{media: newMediaResolver(images), relations: newRelationResolver(contentTypes, entries)}
|
||||
}
|
||||
|
||||
func typedEntry(owner contenttype.ContentType, record entry.Entry, resolvers *entryResolvers) (TypedEntry, error) {
|
||||
record.Data = entry.Project(owner.Fields, record.Data)
|
||||
media, err := resolver.resolve(owner, record)
|
||||
media, err := resolvers.media.resolve(owner, record)
|
||||
if err != nil {
|
||||
return TypedEntry{}, err
|
||||
}
|
||||
return TypedEntry{Entry: record, ContentTypeKey: owner.Key, Media: media}, nil
|
||||
relations, err := resolvers.relations.resolve(owner, record)
|
||||
if err != nil {
|
||||
return TypedEntry{}, err
|
||||
}
|
||||
return TypedEntry{Entry: record, ContentTypeKey: owner.Key, Media: media, Relations: relations}, nil
|
||||
}
|
||||
|
||||
func ensureMediaExists(images image.Repository, owner contenttype.ContentType, data map[string]any, stored map[string]any) error {
|
||||
|
||||
Reference in new issue
Block a user