(ctx context.Context, root *ent.File, args *CreateFolderParameters)
| 1062 | } |
| 1063 | |
| 1064 | func (f *fileClient) CreateFolder(ctx context.Context, root *ent.File, args *CreateFolderParameters) (*ent.File, error) { |
| 1065 | stm := f.client.File. |
| 1066 | Create(). |
| 1067 | SetOwnerID(args.Owner). |
| 1068 | SetType(int(types.FileTypeFolder)). |
| 1069 | SetIsSymbolic(args.IsSymbolic). |
| 1070 | SetName(args.Name) |
| 1071 | if root != nil { |
| 1072 | stm.SetParent(root).SetType(int(types.FileTypeFolder)) |
| 1073 | } |
| 1074 | |
| 1075 | fid, err := stm.OnConflict(sql.ConflictColumns(file.FieldFileChildren, file.FieldName)).Ignore().ID(ctx) |
| 1076 | if err != nil { |
| 1077 | return nil, fmt.Errorf("failed to create folder: %w", err) |
| 1078 | } |
| 1079 | |
| 1080 | newFolder, err := f.client.File.Get(ctx, fid) |
| 1081 | if err != nil { |
| 1082 | return nil, fmt.Errorf("failed to get folder: %w", err) |
| 1083 | } |
| 1084 | |
| 1085 | if len(args.Metadata) > 0 { |
| 1086 | _, err := f.client.Metadata. |
| 1087 | CreateBulk(lo.MapToSlice(args.Metadata, func(key, value string) *ent.MetadataCreate { |
| 1088 | _, isPrivate := args.MetadataPrivateMask[key] |
| 1089 | return f.client.Metadata.Create(). |
| 1090 | SetName(key). |
| 1091 | SetValue(value). |
| 1092 | SetFile(newFolder). |
| 1093 | SetIsPublic(!isPrivate) |
| 1094 | })...). |
| 1095 | Save(ctx) |
| 1096 | if err != nil { |
| 1097 | return nil, fmt.Errorf("failed to create metadata: %v", err) |
| 1098 | } |
| 1099 | } |
| 1100 | |
| 1101 | return newFolder, err |
| 1102 | |
| 1103 | } |
| 1104 | |
| 1105 | func (f *fileClient) Rename(ctx context.Context, original *ent.File, newName string) (*ent.File, error) { |
| 1106 | return f.client.File.UpdateOne(original).SetName(newName).Save(ctx) |
nothing calls this directly
no test coverage detected