From c9c2ce38e5daadea9eb8e672856e53dabfae3474 Mon Sep 17 00:00:00 2001 From: andrey Date: Mon, 19 Jan 2026 11:13:51 +0300 Subject: [PATCH 1/3] Kotlin: sort method errs before generate code --- kotlin/kotlin_client.go | 15 +++++++++++++++ kotlin/testdata/arith.go | 10 ++++++++++ kotlin/testdata/protocol.generated.kt | 12 ++++++++++++ kotlin/testdata/testdata_zenrpc.go | 9 +++++++++ 4 files changed, 46 insertions(+) diff --git a/kotlin/kotlin_client.go b/kotlin/kotlin_client.go index de4810e..b58b4fa 100644 --- a/kotlin/kotlin_client.go +++ b/kotlin/kotlin_client.go @@ -259,6 +259,21 @@ func (g *Generator) sortTemplateData(data *templateData) { return data.Methods[i].Name < data.Methods[j].Name }) + // sort errs by erName (it's a number) because they was located in map + for _, m := range data.Methods { + sort.Slice(m.Errors, func(i, j int) bool { + iNum, err := strconv.Atoi(m.Errors[i].Name) + if err != nil { + return m.Errors[i].Name < m.Errors[j].Name + } + jNum, err := strconv.Atoi(m.Errors[j].Name) + if err != nil { + return m.Errors[i].Name < m.Errors[j].Name + } + return iNum < jNum + }) + } + sort.Slice(data.Models, func(i, j int) bool { return data.Models[i].Name < data.Models[j].Name }) diff --git a/kotlin/testdata/arith.go b/kotlin/testdata/arith.go index 6e9cc87..5874710 100644 --- a/kotlin/testdata/arith.go +++ b/kotlin/testdata/arith.go @@ -44,6 +44,16 @@ type Point struct { type SecondPoint struct { } +//zenrpc:mustExist=false +//zenrpc:sendRealSms=false +//zenrpc:withCascade=false +//zenrpc:404 phone was not found +//zenrpc:501 no phone or apiKey provided +//zenrpc:502 given phone is different from user's +//zenrpc:503 failed to create new user +//zenrpc:504 failed to send sms +//zenrpc:505 given phone number is invalid +//zenrpc:506 given phone number is blocked func (as ArithService) GetByID(ctx context.Context, cartId string, categoryId int, baseID int, id int) (*Point, error) { return &Point{}, nil } diff --git a/kotlin/testdata/protocol.generated.kt b/kotlin/testdata/protocol.generated.kt index 2feb4de..4751d71 100644 --- a/kotlin/testdata/protocol.generated.kt +++ b/kotlin/testdata/protocol.generated.kt @@ -109,6 +109,18 @@ interface Api : Transport { ) /** + * + * Коды ошибок: + * + * "404": "phone was not found", + * "501": "no phone or apiKey provided", + * "502": "given phone is different from user's", + * "503": "failed to create new user", + * "504": "failed to send sms", + * "505": "given phone number is invalid", + * "506": "given phone number is blocked", + * + * * @return */ fun arithGetByID( diff --git a/kotlin/testdata/testdata_zenrpc.go b/kotlin/testdata/testdata_zenrpc.go index 55ff2c8..2e1ed6d 100644 --- a/kotlin/testdata/testdata_zenrpc.go +++ b/kotlin/testdata/testdata_zenrpc.go @@ -382,6 +382,15 @@ func (ArithService) SMD() smd.ServiceInfo { }, }, }, + Errors: map[int]string{ + 404: "phone was not found", + 501: "no phone or apiKey provided", + 502: "given phone is different from user's", + 503: "failed to create new user", + 504: "failed to send sms", + 505: "given phone number is invalid", + 506: "given phone number is blocked", + }, }, "GetSecondIds": { Parameters: []smd.JSONSchema{}, From 114d8fc4e0a1dcfbe3c3edf4ec76d99373e5f087 Mon Sep 17 00:00:00 2001 From: andrey Date: Mon, 19 Jan 2026 11:14:33 +0300 Subject: [PATCH 2/3] Kotlin: update local version --- kotlin/kotlin_client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kotlin/kotlin_client.go b/kotlin/kotlin_client.go index b58b4fa..4ba8d17 100644 --- a/kotlin/kotlin_client.go +++ b/kotlin/kotlin_client.go @@ -36,7 +36,7 @@ const ( DefaultMap = "emptyMap()" DefaultLocalTime = "LocalTime.now()" - version = "1.0.1" + version = "1.0.2" ) var ( From 5571055e8e690e31c33acdc18c25d35f5dfeeef3 Mon Sep 17 00:00:00 2001 From: andrey Date: Mon, 19 Jan 2026 11:17:07 +0300 Subject: [PATCH 3/3] Kotlin: update local version --- kotlin/testdata/arith.go | 17 +++++++---------- kotlin/testdata/protocol.generated.kt | 16 ++++++++-------- kotlin/testdata/rpc.generated.kt | 2 +- kotlin/testdata/testdata_zenrpc.go | 16 ++++++++-------- 4 files changed, 24 insertions(+), 27 deletions(-) diff --git a/kotlin/testdata/arith.go b/kotlin/testdata/arith.go index 5874710..53ed216 100644 --- a/kotlin/testdata/arith.go +++ b/kotlin/testdata/arith.go @@ -44,16 +44,13 @@ type Point struct { type SecondPoint struct { } -//zenrpc:mustExist=false -//zenrpc:sendRealSms=false -//zenrpc:withCascade=false -//zenrpc:404 phone was not found -//zenrpc:501 no phone or apiKey provided -//zenrpc:502 given phone is different from user's -//zenrpc:503 failed to create new user -//zenrpc:504 failed to send sms -//zenrpc:505 given phone number is invalid -//zenrpc:506 given phone number is blocked +//zenrpc:404 was not found +//zenrpc:501 example +//zenrpc:502 given example is different from user's +//zenrpc:503 failed to create new example +//zenrpc:504 failed to send example +//zenrpc:505 given example is invalid +//zenrpc:506 given example is blocked func (as ArithService) GetByID(ctx context.Context, cartId string, categoryId int, baseID int, id int) (*Point, error) { return &Point{}, nil } diff --git a/kotlin/testdata/protocol.generated.kt b/kotlin/testdata/protocol.generated.kt index 4751d71..1e2a975 100644 --- a/kotlin/testdata/protocol.generated.kt +++ b/kotlin/testdata/protocol.generated.kt @@ -1,4 +1,4 @@ -/// Code generated from jsonrpc schema by rpcgen v2.5.x with kotlin v1.0.1; DO NOT EDIT. +/// Code generated from jsonrpc schema by rpcgen v2.5.x with kotlin v1.0.2; DO NOT EDIT. package api import com.google.gson.reflect.TypeToken @@ -112,13 +112,13 @@ interface Api : Transport { * * Коды ошибок: * - * "404": "phone was not found", - * "501": "no phone or apiKey provided", - * "502": "given phone is different from user's", - * "503": "failed to create new user", - * "504": "failed to send sms", - * "505": "given phone number is invalid", - * "506": "given phone number is blocked", + * "404": "was not found", + * "501": "example", + * "502": "given example is different from user's", + * "503": "failed to create new example", + * "504": "failed to send example", + * "505": "given example is invalid", + * "506": "given example is blocked", * * * @return diff --git a/kotlin/testdata/rpc.generated.kt b/kotlin/testdata/rpc.generated.kt index ef61d6c..cdd3039 100644 --- a/kotlin/testdata/rpc.generated.kt +++ b/kotlin/testdata/rpc.generated.kt @@ -1,4 +1,4 @@ -/// Code generated from jsonrpc schema by rpcgen v2.5.x with kotlin v1.0.1; DO NOT EDIT. +/// Code generated from jsonrpc schema by rpcgen v2.5.x with kotlin v1.0.2; DO NOT EDIT. package api.model import java.time.LocalTime diff --git a/kotlin/testdata/testdata_zenrpc.go b/kotlin/testdata/testdata_zenrpc.go index 2e1ed6d..10160dc 100644 --- a/kotlin/testdata/testdata_zenrpc.go +++ b/kotlin/testdata/testdata_zenrpc.go @@ -1,4 +1,4 @@ -// Code generated by zenrpc v2.2.12; DO NOT EDIT. +// Code generated by zenrpc v2.3.0; DO NOT EDIT. package testdata @@ -383,13 +383,13 @@ func (ArithService) SMD() smd.ServiceInfo { }, }, Errors: map[int]string{ - 404: "phone was not found", - 501: "no phone or apiKey provided", - 502: "given phone is different from user's", - 503: "failed to create new user", - 504: "failed to send sms", - 505: "given phone number is invalid", - 506: "given phone number is blocked", + 404: "was not found", + 501: "example", + 502: "given example is different from user's", + 503: "failed to create new example", + 504: "failed to send example", + 505: "given example is invalid", + 506: "given example is blocked", }, }, "GetSecondIds": {