Skip to content

Commit d2bc3c1

Browse files
authored
fix: mod creation with logo (#96)
1 parent 4363f9b commit d2bc3c1

File tree

11 files changed

+98
-27
lines changed

11 files changed

+98
-27
lines changed

db/schema/mod.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func (Mod) Fields() []ent.Field {
2626
field.String("name").MaxLen(32),
2727
field.String("short_description").MaxLen(128),
2828
field.String("full_description"),
29-
field.String("logo"),
29+
field.String("logo").Optional(),
3030
field.String("logo_thumbhash").Optional(),
3131
field.String("source_url").Optional(),
3232
field.String("creator_id"),

generated/ent/internal/schema.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generated/ent/migrate/schema.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generated/ent/mod/where.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generated/ent/mod_create.go

Lines changed: 28 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generated/ent/mod_update.go

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generated/ent/mutation.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gql/resolver_mods.go

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,23 +80,6 @@ func (r *mutationResolver) CreateMod(ctx context.Context, newMod generated.NewMo
8080

8181
dbMod.SetCreatorID(user.ID)
8282

83-
var logoData []byte
84-
var thumbHash string
85-
86-
if newMod.Logo != nil {
87-
file, err := io.ReadAll(newMod.Logo.File)
88-
if err != nil {
89-
return nil, fmt.Errorf("failed to read logo file: %w", err)
90-
}
91-
92-
logoData, thumbHash, err = converter.ConvertAnyImageToWebp(ctx, file)
93-
if err != nil {
94-
return nil, fmt.Errorf("failed to convert logo file: %w", err)
95-
}
96-
} else {
97-
dbMod.SetLogo("")
98-
}
99-
10083
// Allow only new 4 mods per 24h
10184
existingMods, err := db.From(ctx).Mod.Query().
10285
Order(mod.ByCreatedAt(sql.OrderAsc())).
@@ -136,12 +119,22 @@ func (r *mutationResolver) CreateMod(ctx context.Context, newMod generated.NewMo
136119
return nil, err
137120
}
138121

139-
if logoData != nil {
122+
if newMod.Logo != nil {
123+
file, err := io.ReadAll(newMod.Logo.File)
124+
if err != nil {
125+
return nil, fmt.Errorf("failed to read logo file: %w", err)
126+
}
127+
128+
logoData, thumbHash, err := converter.ConvertAnyImageToWebp(ctx, file)
129+
if err != nil {
130+
return nil, fmt.Errorf("failed to convert logo file: %w", err)
131+
}
132+
140133
logoKey, err := storage.UploadModLogo(ctx, resultMod.ID, bytes.NewReader(logoData))
141134
if err == nil {
142135
resultMod, err = resultMod.Update().
143136
SetLogo(storage.GenerateDownloadLink(ctx, logoKey)).
144-
SetNillableLogoThumbhash(util.ContainsOrNil(thumbHash)).
137+
SetLogoThumbhash(thumbHash).
145138
Save(ctx)
146139
if err != nil {
147140
return nil, err
@@ -208,7 +201,7 @@ func (r *mutationResolver) UpdateMod(ctx context.Context, modID string, updateMo
208201
dbUpdate.SetLogo(storage.GenerateDownloadLink(ctx, logoKey))
209202
dbUpdate.SetLogoThumbhash(thumbHash)
210203
} else {
211-
dbUpdate.SetLogo("")
204+
dbUpdate.ClearLogo()
212205
dbUpdate.ClearLogoThumbhash()
213206
}
214207
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- reverse: modify "mods" table
2+
ALTER TABLE "mods" ALTER COLUMN "logo" SET NOT NULL;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- modify "mods" table
2+
ALTER TABLE "mods" ALTER COLUMN "logo" DROP NOT NULL;

0 commit comments

Comments
 (0)