Generators updated

Now includes generators for transforming storage.Role into the API
representation and the Typescript version for the frontend
This commit is contained in:
Melody Becker 2024-11-20 13:37:31 +01:00
parent 46bfac7540
commit 378f94fa97
4 changed files with 326 additions and 4 deletions

View file

@ -82,17 +82,18 @@ func main() {
parts := sliceutils.Filter(strings.Split(line, " "), func(t string) bool { return t != "" })
nameTypeMap[parts[0]] = parts[1]
}
pkgString, _, _ := strings.Cut(string(data), "\n")
outBuilder := strings.Builder{}
outBuilder.WriteString(`// Code generated by cmd/RolesApiConverter DO NOT EDIT.
// If you need to refresh the content, run go generate again
`)
outBuilder.WriteString(pkgString + "\n\n")
outBuilder.WriteString("package server\n\n")
outBuilder.WriteString("func convertStorageRoleToApiRole(r storage.Role) linstromRole {\n")
outBuilder.WriteString("import \"gitlab.com/mstarongitlab/linstrom/storage\"\n")
outBuilder.WriteString("func convertRoleStorageToLinstrom(r storage.Role) linstromRole {\n")
outBuilder.WriteString("return linstromRole{")
outBuilder.WriteString("Id:r.ID,CreatedAt:r.CreatedAt,UpdatedAt:&r.UpdatedAt,Name:r.Name,")
outBuilder.WriteString("Id:r.ID,CreatedAt:r.CreatedAt,UpdatedAt:r.UpdatedAt,Name:r.Name,")
outBuilder.WriteString("Priority:r.Priority,IsUserRole:r.IsUserRole,IsBuiltIn:r.IsBuiltIn,")
for k := range nameTypeMap {
outBuilder.WriteString(fmt.Sprintf("%s:r.%s,", k, k))