Skip to content
This repository has been archived by the owner on Aug 16, 2022. It is now read-only.

Commit

Permalink
fix: project public image type
Browse files Browse the repository at this point in the history
  • Loading branch information
rot1024 committed Jul 16, 2021
1 parent ba7d164 commit e82b548
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 89 deletions.
2 changes: 1 addition & 1 deletion internal/adapter/graphql/controller_project.go
Expand Up @@ -68,7 +68,7 @@ func (c *ProjectController) Update(ctx context.Context, ginput *UpdateProjectInp
BasicAuthPassword: ginput.BasicAuthPassword,
PublicTitle: ginput.PublicTitle,
PublicDescription: ginput.PublicDescription,
PublicImage: fromFile(ginput.PublicImage),
PublicImage: ginput.PublicImage,
PublicNoIndex: ginput.PublicNoIndex,
DeletePublicImage: deletePublicImage,
DeleteImageURL: deleteImageURL,
Expand Down
30 changes: 15 additions & 15 deletions internal/adapter/graphql/models_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 2 additions & 17 deletions internal/graphql/generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

60 changes: 7 additions & 53 deletions internal/usecase/interactor/project.go
Expand Up @@ -10,9 +10,7 @@ import (
"github.com/reearth/reearth-backend/internal/usecase/gateway"
"github.com/reearth/reearth-backend/internal/usecase/interfaces"
"github.com/reearth/reearth-backend/internal/usecase/repo"
"github.com/reearth/reearth-backend/pkg/asset"
err1 "github.com/reearth/reearth-backend/pkg/error"
"github.com/reearth/reearth-backend/pkg/file"
"github.com/reearth/reearth-backend/pkg/id"
"github.com/reearth/reearth-backend/pkg/project"
"github.com/reearth/reearth-backend/pkg/scene"
Expand Down Expand Up @@ -156,11 +154,10 @@ func (i *Project) Update(ctx context.Context, p interfaces.UpdateProjectParam, o
}
}

if p.ImageURL != nil && !p.DeleteImageURL {
prj.SetImageURL(p.ImageURL)
}
if p.DeleteImageURL {
prj.SetImageURL(nil)
} else if p.ImageURL != nil {
prj.SetImageURL(p.ImageURL)
}

if p.Archived != nil {
Expand All @@ -187,24 +184,17 @@ func (i *Project) Update(ctx context.Context, p interfaces.UpdateProjectParam, o
prj.UpdatePublicDescription(*p.PublicDescription)
}

if p.PublicImage != nil && !p.DeletePublicImage {
asset, err := i.createAsset(ctx, p.PublicImage, prj.Team())
if err != nil {
return nil, err
}
prj.UpdatePublicImage(asset.URL())
if p.DeletePublicImage {
prj.UpdatePublicImage("")
} else if p.PublicImage != nil {
prj.UpdatePublicImage(*p.PublicImage)
}

if p.PublicNoIndex != nil {
prj.UpdatePublicNoIndex(*p.PublicNoIndex)
}

if p.DeletePublicImage {
prj.UpdatePublicImage("")
}

err = i.projectRepo.Save(ctx, prj)
if err != nil {
if err := i.projectRepo.Save(ctx, prj); err != nil {
return nil, err
}

Expand Down Expand Up @@ -348,42 +338,6 @@ func (i *Project) Publish(ctx context.Context, params interfaces.PublishProjectP
return prj, nil
}

func (i *Project) createAsset(ctx context.Context, f *file.File, t id.TeamID) (_ *asset.Asset, err error) {
tx, err := i.transaction.Begin()
if err != nil {
return
}
defer func() {
if err2 := tx.End(ctx); err == nil && err2 != nil {
err = err2
}
}()

url, err := i.file.UploadAsset(ctx, f)
if err != nil {
return nil, err
}

asset, err := asset.New().
NewID().
Team(t).
Name(f.Name).
Size(f.Size).
URL(url.String()).
Build()
if err != nil {
return nil, err
}

err = i.assetRepo.Save(ctx, asset)
if err != nil {
return nil, err
}

tx.Commit()
return asset, nil
}

func (i *Project) Delete(ctx context.Context, projectID id.ProjectID, operator *usecase.Operator) (err error) {
tx, err := i.transaction.Begin()
if err != nil {
Expand Down
3 changes: 1 addition & 2 deletions internal/usecase/interfaces/project.go
Expand Up @@ -6,7 +6,6 @@ import (
"net/url"

"github.com/reearth/reearth-backend/internal/usecase"
"github.com/reearth/reearth-backend/pkg/file"
"github.com/reearth/reearth-backend/pkg/id"
"github.com/reearth/reearth-backend/pkg/project"
"github.com/reearth/reearth-backend/pkg/visualizer"
Expand Down Expand Up @@ -34,7 +33,7 @@ type UpdateProjectParam struct {
ImageURL *url.URL
PublicTitle *string
PublicDescription *string
PublicImage *file.File
PublicImage *string
PublicNoIndex *bool
DeletePublicImage bool
DeleteImageURL bool
Expand Down
2 changes: 1 addition & 1 deletion schema.graphql
Expand Up @@ -790,7 +790,7 @@ input UpdateProjectInput {
imageUrl: URL
publicTitle: String
publicDescription: String
publicImage: Upload
publicImage: String
publicNoIndex: Boolean
deleteImageUrl: Boolean
deletePublicImage: Boolean
Expand Down

0 comments on commit e82b548

Please sign in to comment.