| 914 | return nil |
| 915 | } |
| 916 | func (fq *FileQuery) loadShares(ctx context.Context, query *ShareQuery, nodes []*File, init func(*File), assign func(*File, *Share)) error { |
| 917 | fks := make([]driver.Value, 0, len(nodes)) |
| 918 | nodeids := make(map[int]*File) |
| 919 | for i := range nodes { |
| 920 | fks = append(fks, nodes[i].ID) |
| 921 | nodeids[nodes[i].ID] = nodes[i] |
| 922 | if init != nil { |
| 923 | init(nodes[i]) |
| 924 | } |
| 925 | } |
| 926 | query.withFKs = true |
| 927 | query.Where(predicate.Share(func(s *sql.Selector) { |
| 928 | s.Where(sql.InValues(s.C(file.SharesColumn), fks...)) |
| 929 | })) |
| 930 | neighbors, err := query.All(ctx) |
| 931 | if err != nil { |
| 932 | return err |
| 933 | } |
| 934 | for _, n := range neighbors { |
| 935 | fk := n.file_shares |
| 936 | if fk == nil { |
| 937 | return fmt.Errorf(`foreign-key "file_shares" is nil for node %v`, n.ID) |
| 938 | } |
| 939 | node, ok := nodeids[*fk] |
| 940 | if !ok { |
| 941 | return fmt.Errorf(`unexpected referenced foreign-key "file_shares" returned %v for node %v`, *fk, n.ID) |
| 942 | } |
| 943 | assign(node, n) |
| 944 | } |
| 945 | return nil |
| 946 | } |
| 947 | func (fq *FileQuery) loadDirectLinks(ctx context.Context, query *DirectLinkQuery, nodes []*File, init func(*File), assign func(*File, *DirectLink)) error { |
| 948 | fks := make([]driver.Value, 0, len(nodes)) |
| 949 | nodeids := make(map[int]*File) |