@@ -35,74 +35,69 @@ type IconValidatorParams struct {
35
35
ImageData []byte
36
36
}
37
37
38
- func NewErr (msg string ) error {
39
- return errors .New (msg )
40
- }
41
-
42
38
// TODO: Implement this
43
- func SubmitPackage (data []byte ) (bool , error ) {
44
- return false , nil
45
- }
39
+ // func SubmitPackage(data []byte) (bool, error) {
40
+ // return false, nil
41
+ // }
46
42
47
43
// TODO: Implement this
48
- func ValidateReadme (data []byte ) (bool , error ) {
49
- return false , nil
50
- }
44
+ // func ValidateReadme(data []byte) (bool, error) {
45
+ // return false, nil
46
+ // }
51
47
52
- func ValidateManifest (author string , data []byte ) (bool , []string , error ) {
48
+ func ValidateManifest (author string , data []byte ) (valid bool , errs []string , err error ) {
53
49
var manifest ManifestMetadata
54
- var errors []string
55
50
56
- err : = json .Unmarshal (data , & manifest )
51
+ err = json .Unmarshal (data , & manifest )
57
52
if err != nil {
58
- return false , nil , NewErr ("error deserializing manifest: \n " + err .Error ())
53
+ return false , nil , errors . New ("error deserializing manifest: \n " + err .Error ())
59
54
}
60
55
61
- AddIfEmpty (& errors , & manifest .Name , "required property 'name' is empty or unspecified" )
62
- AddIfInvalid (& errors , & manifest .Name , "property 'name' must contain only valid characters (a-z A-Z 0-9 _)" )
63
- AddIfEmpty (& errors , & manifest .Description , "required property 'description' is empty or unspecified" )
56
+ AddIfEmpty (& errs , & manifest .Name , "required property 'name' is empty or unspecified" )
57
+ AddIfInvalid (& errs , & manifest .Name , "property 'name' must contain only valid characters (a-z A-Z 0-9 _)" )
58
+ AddIfEmpty (& errs , & manifest .Description , "required property 'description' is empty or unspecified" )
64
59
65
- verEmpty := AddIfEmpty (& errors , & manifest .VersionNumber , "required property 'version_number' is empty or unspecified" )
60
+ verEmpty := AddIfEmpty (& errs , & manifest .VersionNumber , "required property 'version_number' is empty or unspecified" )
66
61
if ! verEmpty {
67
- valid , _ := util .CheckSemVer (manifest .VersionNumber )
68
- if valid {
62
+ matched , _ := util .CheckSemVer (manifest .VersionNumber )
63
+ if matched {
69
64
pkg , _ := GetPackage (author , manifest .Name )
70
65
if pkg != nil {
71
66
verA , _ := version .NewSemver (manifest .VersionNumber )
72
67
verB , _ := version .NewSemver (pkg .Latest .VersionNumber )
73
68
74
69
if verA .LessThanOrEqual (verB ) {
75
- Add (& errors , "property 'version_number' must be higher than the latest" )
70
+ Add (& errs , "property 'version_number' must be higher than the latest" )
76
71
}
77
72
}
78
73
} else {
79
- Add (& errors , "property 'version_number' does not follow semantic versioning (major.minor.patch)" )
74
+ Add (& errs , "property 'version_number' does not follow semantic versioning (major.minor.patch)" )
80
75
}
81
76
}
82
77
83
78
if manifest .WebsiteURL == nil {
84
- Add (& errors , "required property 'website_url' is unspecified" )
79
+ Add (& errs , "property 'website_url' is empty or unspecified" )
85
80
} else {
86
81
url := strings .ToLower (* manifest .WebsiteURL )
87
82
if ! (strings .HasPrefix (url , "http://" ) || strings .HasPrefix (url , "https://" )) {
88
- Add (& errors , "property 'website_url' must be a valid URL" )
83
+ Add (& errs , "property 'website_url' must be a valid URL" )
89
84
}
90
85
}
91
86
92
87
if manifest .Dependencies == nil {
93
- Add (& errors , "manifest property 'dependencies' is required " )
88
+ Add (& errs , "required property 'dependencies' is empty or unspecified " )
94
89
} else {
95
90
for _ , dep := range manifest .Dependencies {
96
91
fullName := author + "-" + manifest .Name
97
92
if strings .Contains (strings .ToLower (dep ), strings .ToLower (fullName )) {
98
- Add (& errors , "manifest property 'dependencies' is invalid. cannot depend on self" )
93
+ Add (& errs , "property 'dependencies' is invalid. cannot depend on self" )
99
94
}
100
95
101
96
// TODO: Check multiple versions of same package
102
97
}
103
98
}
104
99
105
- return len (errors ) < 1 , errors , nil
100
+ return len (errs ) < 1 , errs , nil
106
101
}
107
102
108
103
// Decodes image data and validates that the image is a PNG and the dimensions are 256x256.
0 commit comments