...
1 package resolver
2
3
4
5
6
7 import (
8 "context"
9
10 "edge-infra.dev/pkg/edge/api/graph/model"
11 "edge-infra.dev/pkg/edge/api/utils"
12 )
13
14
15 func (r *mutationResolver) AddArtifactCompatibility(ctx context.Context, artifactCompatibility model.ArtifactCompatibilityPayload) (bool, error) {
16
17 existingCompatibility, err := r.CompatibilityService.GetArtifactVersionCompatibility(ctx, model.ArtifactVersion{Name: artifactCompatibility.Artifact.Name, Version: artifactCompatibility.Artifact.Version}, nil)
18 if err != nil {
19 return false, err
20 }
21 if existingCompatibility.CompatibleArtifacts != nil {
22 artifactCompatibility.NthIndex = &existingCompatibility.NthIndex
23 }
24 return r.CompatibilityService.AddArtifactCompatibility(ctx, artifactCompatibility)
25 }
26
27
28 func (r *mutationResolver) DeleteArtifactCompatibility(ctx context.Context, artifactCompatibility model.ArtifactCompatibilityPayload) (bool, error) {
29 return r.CompatibilityService.DeleteArtifactCompatibility(ctx, artifactCompatibility)
30 }
31
32
33 func (r *queryResolver) GetArtifactVersionCompatibility(ctx context.Context, artifactName string, artifactVersion string) (*model.ArtifactCompatibility, error) {
34 if artifactVersion == "latest" {
35 latestVersion, err := r.ArtifactsService.GetLatestAvailableArtifactVersion(ctx, artifactName)
36 if err != nil {
37 return nil, err
38 }
39 artifactVersion = latestVersion.Version
40 }
41 artifactBaseMinorVersion, _ := utils.SetVersionToBaseAndMinorVersion(&artifactVersion, nil)
42 return r.CompatibilityService.GetArtifactVersionCompatibility(ctx, model.ArtifactVersion{Name: artifactName, Version: artifactBaseMinorVersion}, nil)
43 }
44
45
46 func (r *queryResolver) CheckVersionSupport(ctx context.Context, artifactName string, artifactVersion string) (bool, error) {
47 latestArtifact, err := r.ArtifactsService.GetLatestAvailableArtifactVersion(ctx, artifactName)
48 if err != nil {
49 return false, err
50 }
51 latestBaseVersion, _ := utils.SetVersionToBaseAndMinorVersion(&latestArtifact.Version, nil)
52 artifactBaseVersion, _ := utils.SetVersionToBaseAndMinorVersion(&artifactVersion, nil)
53 return r.CompatibilityService.IsCompatible(ctx, model.ArtifactVersion{Name: artifactName, Version: latestBaseVersion}, model.ArtifactVersion{Name: artifactName, Version: artifactBaseVersion})
54 }
55
View as plain text