package main import ( "encoding/json" "masonry/sdk" ) func main() { userEntity := sdk.Entity{ Name: "User", Description: nil, Fields: []sdk.Field{ { Name: "id", Type: "int", Required: true, Unique: true, Default: nil, Validations: []sdk.Validation{ { Type: "validate", Value: nil, }, }, Relationship: nil, }, { Name: "username", Type: "string", Required: true, Unique: true, Default: nil, Validations: []sdk.Validation{ { Type: "validate", Value: nil, }, }, Relationship: nil, }, { Name: "email", Type: "string", Required: true, Unique: true, Default: nil, Validations: []sdk.Validation{ { Type: "validate", Value: nil, }, }, Relationship: nil, }, { Name: "password", Type: "string", Required: true, Unique: false, Default: nil, Validations: []sdk.Validation{ { Type: "validate", Value: nil, }, }, Relationship: nil, }, { Name: "created_at", Type: "datetime", Required: true, Unique: false, Default: nil, Validations: []sdk.Validation{ { Type: "validate", Value: nil, }, }, Relationship: nil, }, { Name: "updated_at", Type: "datetime", Required: true, Unique: false, Default: nil, Validations: []sdk.Validation{ { Type: "validate", Value: nil, }, }, Relationship: nil, }, }, } createUserDesc := "Create a new user with username, email, and password. Returns the created user object." createUser := sdk.Endpoint{ Method: "POST", Path: "/user", Entity: userEntity, Description: &createUserDesc, Auth: true, Permissions: nil, } server := sdk.Server{ Name: "TestServer", Settings: []sdk.ServerSetting{ { Host: "localhost", Port: 8000, }, }, Endpoints: []sdk.Endpoint{ createUser, }, } def := sdk.Definition{ Server: []sdk.Server{ server, }, } out, err := json.MarshalIndent(def, "", " ") if err != nil { panic(err) } println(string(out)) println("🎉 Successfully built SDK definition!") println("You can now use this SDK definition in your application.") }