Skip to content

Commit

Permalink
fix: restore REST all mod versions response contents (#82)
Browse files Browse the repository at this point in the history
  • Loading branch information
mircearoata authored Aug 13, 2024
1 parent b9b5358 commit 7cb4de8
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 3 deletions.
27 changes: 27 additions & 0 deletions conversion/ent_to_rest.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package conversion

import (
"github.com/satisfactorymodding/smr-api/generated/ent"
"github.com/satisfactorymodding/smr-api/nodes/types"
)

// goverter:converter
// goverter:output:file ../generated/conv/version.go
// goverter:output:package conv
// goverter:extend TimeToString UIntToInt Int64ToInt
type ModAllVersions interface {
// goverter:map Edges.Targets Targets
// goverter:map Edges.VersionDependencies Dependencies
Convert(source *ent.Version) *types.ModAllVersionsVersion
ConvertSlice(source []*ent.Version) []*types.ModAllVersionsVersion

// goverter:map . Link | TargetLink
ConvertTarget(source *ent.VersionTarget) *types.ModAllVersionsVersionTarget
}

func TargetLink(source *ent.VersionTarget) string {
if source == nil {
return ""
}
return "/v1/version/" + source.VersionID + "/" + source.TargetName + "/download"
}
65 changes: 65 additions & 0 deletions generated/conv/version.go

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

6 changes: 3 additions & 3 deletions nodes/mod.go
Original file line number Diff line number Diff line change
Expand Up @@ -476,15 +476,15 @@ func getAllModVersions(c echo.Context) (interface{}, *ErrorResponse) {
}

versions, err := mod.QueryVersions().
WithDependencies().
WithVersionDependencies().
WithTargets().
Where(version2.Approved(true), version2.Denied(false)).
Select(version2.FieldHash, version2.FieldSize, version2.FieldVersion).
Select(version2.FieldHash, version2.FieldSize, version2.FieldGameVersion, version2.FieldVersion).
All(c.Request().Context())
if err != nil {
slox.Error(c.Request().Context(), "failed fetching versions", slog.Any("err", err))
return nil, &ErrorVersionNotFound
}

return (*conv.VersionImpl)(nil).ConvertSlice(versions), nil
return (*conv.ModAllVersionsImpl)(nil).ConvertSlice(versions), nil
}
23 changes: 23 additions & 0 deletions nodes/types/mod_types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package types

type ModAllVersionsVersion struct {
ID string `json:"id"`
Version string `json:"version"`
GameVersion string `json:"game_version"`
Targets []*ModAllVersionsVersionTarget `json:"targets"`
Dependencies []*ModAllVersionsVersionDependency `json:"dependencies"`
}

type ModAllVersionsVersionTarget struct {
VersionID string `json:"version_id"`
TargetName string `json:"target_name"`
Link string `json:"link"`
Hash string `json:"hash"`
Size int `json:"size"`
}

type ModAllVersionsVersionDependency struct {
ModID string `json:"mod_id"`
Condition string `json:"condition"`
Optional bool `json:"optional"`
}

0 comments on commit 7cb4de8

Please sign in to comment.