parent
ff91b9782b
commit
48f78863a4
53 changed files with 73 additions and 1088 deletions
@ -1,4 +1,4 @@ |
||||
package errors |
||||
package errorx |
||||
|
||||
import "bytes" |
||||
|
@ -1,4 +1,4 @@ |
||||
package errors |
||||
package errorx |
||||
|
||||
import ( |
||||
"errors" |
@ -1,5 +1,5 @@ |
||||
// nolint:gomnd
|
||||
package errors |
||||
package errorx |
||||
|
||||
// BadRequest new BadRequest error that is mapped to a 400 response.
|
||||
func BadRequest(reason, message string) *Error { |
@ -1,4 +1,4 @@ |
||||
package errors |
||||
package errorx |
||||
|
||||
import ( |
||||
stderrors "errors" |
@ -1,4 +1,4 @@ |
||||
package xgo |
||||
package gox |
||||
|
||||
import "fmt" |
||||
|
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
type FilterOption func(*Filter) |
||||
|
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"testing" |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"context" |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"testing" |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"context" |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import "testing" |
||||
|
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import "strings" |
||||
|
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"context" |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"testing" |
@ -0,0 +1,18 @@ |
||||
package logx |
||||
|
||||
import ( |
||||
"context" |
||||
"fmt" |
||||
"testing" |
||||
) |
||||
|
||||
func Test_nsqLogger_Log(t *testing.T) { |
||||
nsqWriter := NewNsqLogger("localhost:4150", "app_log") |
||||
nsqWriter.Start(context.Background()) |
||||
logger := With(nsqWriter, |
||||
"ts", DefaultTimestamp, |
||||
"caller", DefaultCaller, |
||||
) |
||||
logger.Log(LevelInfo, "user name ttt") |
||||
fmt.Println(nsqWriter.Stop(context.Background())) |
||||
} |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"bytes" |
@ -1,4 +1,4 @@ |
||||
package log |
||||
package logx |
||||
|
||||
import ( |
||||
"context" |
@ -1,11 +0,0 @@ |
||||
package timex |
||||
|
||||
import ( |
||||
"fmt" |
||||
"time" |
||||
) |
||||
|
||||
// ReprOfDuration returns the string representation of given duration in ms.
|
||||
func ReprOfDuration(duration time.Duration) string { |
||||
return fmt.Sprintf("%.1fms", float32(duration)/float32(time.Millisecond)) |
||||
} |
@ -1,73 +0,0 @@ |
||||
package timex |
||||
|
||||
import ( |
||||
"errors" |
||||
"git.diulo.com/mogfee/kit/lang" |
||||
"time" |
||||
) |
||||
|
||||
var errTimeout = errors.New("timeout") |
||||
|
||||
type ( |
||||
Ticker interface { |
||||
Chan() <-chan time.Time |
||||
Stop() |
||||
} |
||||
|
||||
FakeTicker interface { |
||||
Ticker |
||||
Done() |
||||
Tick() |
||||
Wait(d time.Duration) error |
||||
} |
||||
|
||||
fakeTicker struct { |
||||
c chan time.Time |
||||
done chan lang.PlaceholderType |
||||
} |
||||
|
||||
realTicker struct { |
||||
*time.Ticker |
||||
} |
||||
) |
||||
|
||||
func NewTicker(d time.Duration) Ticker { |
||||
return &realTicker{ |
||||
Ticker: time.NewTicker(d), |
||||
} |
||||
} |
||||
|
||||
func (r *realTicker) Chan() <-chan time.Time { |
||||
return r.C |
||||
} |
||||
func NewFakeTicker() FakeTicker { |
||||
return &fakeTicker{ |
||||
c: make(chan time.Time, 1), |
||||
done: make(chan lang.PlaceholderType, 1), |
||||
} |
||||
} |
||||
|
||||
func (f *fakeTicker) Chan() <-chan time.Time { |
||||
return f.c |
||||
} |
||||
|
||||
func (f *fakeTicker) Stop() { |
||||
close(f.c) |
||||
} |
||||
|
||||
func (f *fakeTicker) Done() { |
||||
f.done <- lang.Placeholder |
||||
} |
||||
|
||||
func (f *fakeTicker) Tick() { |
||||
f.c <- time.Now() |
||||
} |
||||
|
||||
func (f *fakeTicker) Wait(d time.Duration) error { |
||||
select { |
||||
case <-time.After(d): |
||||
return errTimeout |
||||
case <-f.done: |
||||
return nil |
||||
} |
||||
} |
@ -1,65 +0,0 @@ |
||||
package encoding |
||||
|
||||
import ( |
||||
"bytes" |
||||
"encoding/json" |
||||
"git.diulo.com/mogfee/kit/lang" |
||||
"github.com/pelletier/go-toml/v2" |
||||
"gopkg.in/yaml.v3" |
||||
) |
||||
|
||||
func TomlToJson(data []byte) ([]byte, error) { |
||||
var val any |
||||
if err := toml.NewDecoder(bytes.NewReader(data)).Decode(&val); err != nil { |
||||
return nil, err |
||||
} |
||||
var buf bytes.Buffer |
||||
if err := json.NewEncoder(&buf).Encode(val); err != nil { |
||||
return nil, err |
||||
} |
||||
return buf.Bytes(), nil |
||||
} |
||||
func YamlToJson(data []byte) ([]byte, error) { |
||||
var val any |
||||
if err := yaml.Unmarshal(data, &val); err != nil { |
||||
return nil, err |
||||
} |
||||
val = toStringKeyMap(val) |
||||
var buf bytes.Buffer |
||||
if err := json.NewEncoder(&buf).Encode(val); err != nil { |
||||
return nil, err |
||||
} |
||||
return buf.Bytes(), nil |
||||
} |
||||
func convertKeyToString(in map[any]any) map[string]any { |
||||
res := make(map[string]any) |
||||
for k, v := range in { |
||||
res[lang.Repr(k)] = toStringKeyMap(v) |
||||
} |
||||
return res |
||||
} |
||||
|
||||
func convertNumberToJsonNumber(in any) json.Number { |
||||
return json.Number(lang.Repr(in)) |
||||
} |
||||
func covertSlice(in []any) []any { |
||||
res := make([]any, len(in)) |
||||
for i, v := range in { |
||||
res[i] = toStringKeyMap(v) |
||||
} |
||||
return res |
||||
} |
||||
func toStringKeyMap(v any) any { |
||||
switch v := v.(type) { |
||||
case []any: |
||||
return covertSlice(v) |
||||
case map[any]any: |
||||
return convertKeyToString(v) |
||||
case bool, string: |
||||
return v |
||||
case int, uint, int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64: |
||||
return convertNumberToJsonNumber(v) |
||||
default: |
||||
return lang.Repr(v) |
||||
} |
||||
} |
@ -1,34 +0,0 @@ |
||||
package endpoint |
||||
|
||||
import ( |
||||
"net/url" |
||||
) |
||||
|
||||
// NewEndpoint new an Endpoint URL.
|
||||
func NewEndpoint(scheme, host string) *url.URL { |
||||
return &url.URL{Scheme: scheme, Host: host} |
||||
} |
||||
|
||||
// ParseEndpoint parses an Endpoint URL.
|
||||
func ParseEndpoint(endpoints []string, scheme string) (string, error) { |
||||
for _, e := range endpoints { |
||||
u, err := url.Parse(e) |
||||
if err != nil { |
||||
return "", err |
||||
} |
||||
|
||||
if u.Scheme == scheme { |
||||
return u.Host, nil |
||||
} |
||||
} |
||||
return "", nil |
||||
} |
||||
|
||||
// Scheme is the scheme of endpoint url.
|
||||
// examples: scheme="http",isSecure=true get "https"
|
||||
func Scheme(scheme string, isSecure bool) string { |
||||
if isSecure { |
||||
return scheme + "s" |
||||
} |
||||
return scheme |
||||
} |
@ -1,126 +0,0 @@ |
||||
package endpoint |
||||
|
||||
import ( |
||||
"net/url" |
||||
"reflect" |
||||
"testing" |
||||
) |
||||
|
||||
func TestNewEndpoint(t *testing.T) { |
||||
type args struct { |
||||
scheme string |
||||
host string |
||||
} |
||||
tests := []struct { |
||||
name string |
||||
args args |
||||
want *url.URL |
||||
}{ |
||||
{ |
||||
name: "https://github.com/go-kratos/kratos/", |
||||
args: args{"https", "github.com/go-kratos/kratos/"}, |
||||
want: &url.URL{Scheme: "https", Host: "github.com/go-kratos/kratos/"}, |
||||
}, |
||||
{ |
||||
name: "https://go-kratos.dev/", |
||||
args: args{"https", "go-kratos.dev/"}, |
||||
want: &url.URL{Scheme: "https", Host: "go-kratos.dev/"}, |
||||
}, |
||||
{ |
||||
name: "https://www.google.com/", |
||||
args: args{"https", "www.google.com/"}, |
||||
want: &url.URL{Scheme: "https", Host: "www.google.com/"}, |
||||
}, |
||||
} |
||||
for _, tt := range tests { |
||||
t.Run(tt.name, func(t *testing.T) { |
||||
if got := NewEndpoint(tt.args.scheme, tt.args.host); !reflect.DeepEqual(got, tt.want) { |
||||
t.Errorf("NewEndpoint() = %v, want %v", got, tt.want) |
||||
} |
||||
}) |
||||
} |
||||
} |
||||
|
||||
func TestParseEndpoint(t *testing.T) { |
||||
type args struct { |
||||
endpoints []string |
||||
scheme string |
||||
} |
||||
tests := []struct { |
||||
name string |
||||
args args |
||||
want string |
||||
wantErr bool |
||||
}{ |
||||
{ |
||||
name: "kratos", |
||||
args: args{endpoints: []string{"https://github.com/go-kratos/kratos"}, scheme: "https"}, |
||||
want: "github.com", |
||||
wantErr: false, |
||||
}, |
||||
{ |
||||
name: "test", |
||||
args: args{endpoints: []string{"http://go-kratos.dev/"}, scheme: "https"}, |
||||
want: "", |
||||
wantErr: false, |
||||
}, |
||||
{ |
||||
name: "localhost:8080", |
||||
args: args{endpoints: []string{"grpcs://localhost:8080/"}, scheme: "grpcs"}, |
||||
want: "localhost:8080", |
||||
wantErr: false, |
||||
}, |
||||
{ |
||||
name: "localhost:8081", |
||||
args: args{endpoints: []string{"grpcs://localhost:8080/"}, scheme: "grpc"}, |
||||
want: "", |
||||
wantErr: false, |
||||
}, |
||||
} |
||||
for _, tt := range tests { |
||||
t.Run(tt.name, func(t *testing.T) { |
||||
got, err := ParseEndpoint(tt.args.endpoints, tt.args.scheme) |
||||
if (err != nil) != tt.wantErr { |
||||
t.Errorf("ParseEndpoint() error = %v, wantErr %v", err, tt.wantErr) |
||||
return |
||||
} |
||||
if got != tt.want { |
||||
t.Errorf("ParseEndpoint() got = %v, want %v", got, tt.want) |
||||
} |
||||
}) |
||||
} |
||||
} |
||||
|
||||
func TestSchema(t *testing.T) { |
||||
tests := []struct { |
||||
schema string |
||||
secure bool |
||||
want string |
||||
}{ |
||||
{ |
||||
schema: "http", |
||||
secure: true, |
||||
want: "https", |
||||
}, |
||||
{ |
||||
schema: "http", |
||||
secure: false, |
||||
want: "http", |
||||
}, |
||||
{ |
||||
schema: "grpc", |
||||
secure: true, |
||||
want: "grpcs", |
||||
}, |
||||
{ |
||||
schema: "grpc", |
||||
secure: false, |
||||
want: "grpc", |
||||
}, |
||||
} |
||||
for _, tt := range tests { |
||||
if got := Scheme(tt.schema, tt.secure); got != tt.want { |
||||
t.Errorf("Schema() = %v, want %v", got, tt.want) |
||||
} |
||||
} |
||||
} |
@ -1,71 +0,0 @@ |
||||
package lang |
||||
|
||||
import ( |
||||
"fmt" |
||||
"reflect" |
||||
"strconv" |
||||
) |
||||
|
||||
var Placeholder PlaceholderType |
||||
|
||||
type ( |
||||
AnyType = any |
||||
PlaceholderType struct{} |
||||
) |
||||
|
||||
func Repr(v any) string { |
||||
if v == nil { |
||||
return "" |
||||
} |
||||
switch vt := v.(type) { |
||||
case fmt.Stringer: |
||||
return vt.String() |
||||
} |
||||
val := reflect.ValueOf(v) |
||||
|
||||
if val.Kind() == reflect.Ptr && !val.IsNil() { |
||||
val = val.Elem() |
||||
} |
||||
return reprOfValue(val) |
||||
} |
||||
|
||||
func reprOfValue(val reflect.Value) string { |
||||
switch vt := val.Interface().(type) { |
||||
case bool: |
||||
return strconv.FormatBool(vt) |
||||
case error: |
||||
return vt.Error() |
||||
case float32: |
||||
return strconv.FormatFloat(float64(vt), 'f', -1, 32) |
||||
case float64: |
||||
return strconv.FormatFloat(vt, 'f', -1, 64) |
||||
case fmt.Stringer: |
||||
return vt.String() |
||||
case int: |
||||
return strconv.Itoa(vt) |
||||
case int8: |
||||
return strconv.Itoa(int(vt)) |
||||
case int16: |
||||
return strconv.Itoa(int(vt)) |
||||
case int32: |
||||
return strconv.Itoa(int(vt)) |
||||
case int64: |
||||
return strconv.FormatInt(vt, 10) |
||||
case string: |
||||
return vt |
||||
case uint: |
||||
return strconv.FormatUint(uint64(vt), 10) |
||||
case uint8: |
||||
return strconv.FormatUint(uint64(vt), 10) |
||||
case uint16: |
||||
return strconv.FormatUint(uint64(vt), 10) |
||||
case uint32: |
||||
return strconv.FormatUint(uint64(vt), 10) |
||||
case uint64: |
||||
return strconv.FormatUint(vt, 10) |
||||
case []byte: |
||||
return string(vt) |
||||
default: |
||||
return fmt.Sprint(val.Interface()) |
||||
} |
||||
} |
@ -1,19 +0,0 @@ |
||||
package mq |
||||
|
||||
import ( |
||||
"context" |
||||
"fmt" |
||||
"git.diulo.com/mogfee/kit/log" |
||||
"testing" |
||||
) |
||||
|
||||
func Test_nsqLogger_Log(t *testing.T) { |
||||
nsqWriter := NewNsqLogger("localhost:4150", "app_log") |
||||
nsqWriter.Start() |
||||
logger := log.With(nsqWriter, |
||||
"ts", log.DefaultTimestamp, |
||||
"caller", log.DefaultCaller, |
||||
) |
||||
logger.Log(log.LevelInfo, "user name ttt") |
||||
fmt.Println(nsqWriter.Shutdown(context.Background())) |
||||
} |
@ -1,221 +0,0 @@ |
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.1
|
||||
// protoc v3.18.1
|
||||
// source: user.proto
|
||||
|
||||
package user |
||||
|
||||
import ( |
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
||||
reflect "reflect" |
||||
sync "sync" |
||||
) |
||||
|
||||
const ( |
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
||||
) |
||||
|
||||
type Request struct { |
||||
state protoimpl.MessageState |
||||
sizeCache protoimpl.SizeCache |
||||
unknownFields protoimpl.UnknownFields |
||||
|
||||
UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` |
||||
UserPassword string `protobuf:"bytes,2,opt,name=user_password,json=userPassword,proto3" json:"user_password,omitempty"` |
||||
} |
||||
|
||||
func (x *Request) Reset() { |
||||
*x = Request{} |
||||
if protoimpl.UnsafeEnabled { |
||||
mi := &file_user_proto_msgTypes[0] |
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
||||
ms.StoreMessageInfo(mi) |
||||
} |
||||
} |
||||
|
||||
func (x *Request) String() string { |
||||
return protoimpl.X.MessageStringOf(x) |
||||
} |
||||
|
||||
func (*Request) ProtoMessage() {} |
||||
|
||||
func (x *Request) ProtoReflect() protoreflect.Message { |
||||
mi := &file_user_proto_msgTypes[0] |
||||
if protoimpl.UnsafeEnabled && x != nil { |
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
||||
if ms.LoadMessageInfo() == nil { |
||||
ms.StoreMessageInfo(mi) |
||||
} |
||||
return ms |
||||
} |
||||
return mi.MessageOf(x) |
||||
} |
||||
|
||||
// Deprecated: Use Request.ProtoReflect.Descriptor instead.
|
||||
func (*Request) Descriptor() ([]byte, []int) { |
||||
return file_user_proto_rawDescGZIP(), []int{0} |
||||
} |
||||
|
||||
func (x *Request) GetUserId() int64 { |
||||
if x != nil { |
||||
return x.UserId |
||||
} |
||||
return 0 |
||||
} |
||||
|
||||
func (x *Request) GetUserPassword() string { |
||||
if x != nil { |
||||
return x.UserPassword |
||||
} |
||||
return "" |
||||
} |
||||
|
||||
type Response struct { |
||||
state protoimpl.MessageState |
||||
sizeCache protoimpl.SizeCache |
||||
unknownFields protoimpl.UnknownFields |
||||
|
||||
// 密钥
|
||||
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` |
||||
} |
||||
|
||||
func (x *Response) Reset() { |
||||
*x = Response{} |
||||
if protoimpl.UnsafeEnabled { |
||||
mi := &file_user_proto_msgTypes[1] |
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
||||
ms.StoreMessageInfo(mi) |
||||
} |
||||
} |
||||
|
||||
func (x *Response) String() string { |
||||
return protoimpl.X.MessageStringOf(x) |
||||
} |
||||
|
||||
func (*Response) ProtoMessage() {} |
||||
|
||||
func (x *Response) ProtoReflect() protoreflect.Message { |
||||
mi := &file_user_proto_msgTypes[1] |
||||
if protoimpl.UnsafeEnabled && x != nil { |
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
||||
if ms.LoadMessageInfo() == nil { |
||||
ms.StoreMessageInfo(mi) |
||||
} |
||||
return ms |
||||
} |
||||
return mi.MessageOf(x) |
||||
} |
||||
|
||||
// Deprecated: Use Response.ProtoReflect.Descriptor instead.
|
||||
func (*Response) Descriptor() ([]byte, []int) { |
||||
return file_user_proto_rawDescGZIP(), []int{1} |
||||
} |
||||
|
||||
func (x *Response) GetToken() string { |
||||
if x != nil { |
||||
return x.Token |
||||
} |
||||
return "" |
||||
} |
||||
|
||||
var File_user_proto protoreflect.FileDescriptor |
||||
|
||||
var file_user_proto_rawDesc = []byte{ |
||||
0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6f, |
||||
0x6d, 0x2e, 0x64, 0x69, 0x75, 0x6c, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x22, 0x47, 0x0a, 0x07, 0x72, |
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, |
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, |
||||
0x23, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, |
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x61, 0x73, 0x73, |
||||
0x77, 0x6f, 0x72, 0x64, 0x22, 0x20, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, |
||||
0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
||||
0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x41, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x39, |
||||
0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x69, 0x75, |
||||
0x6c, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, |
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x69, 0x75, 0x6c, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, |
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x09, 0x5a, 0x07, 0x2e, 0x2f, 0x3b, |
||||
0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
||||
} |
||||
|
||||
var ( |
||||
file_user_proto_rawDescOnce sync.Once |
||||
file_user_proto_rawDescData = file_user_proto_rawDesc |
||||
) |
||||
|
||||
func file_user_proto_rawDescGZIP() []byte { |
||||
file_user_proto_rawDescOnce.Do(func() { |
||||
file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData) |
||||
}) |
||||
return file_user_proto_rawDescData |
||||
} |
||||
|
||||
var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 2) |
||||
var file_user_proto_goTypes = []interface{}{ |
||||
(*Request)(nil), // 0: com.diulo.api.request
|
||||
(*Response)(nil), // 1: com.diulo.api.response
|
||||
} |
||||
var file_user_proto_depIdxs = []int32{ |
||||
0, // 0: com.diulo.api.user.list:input_type -> com.diulo.api.request
|
||||
1, // 1: com.diulo.api.user.list:output_type -> com.diulo.api.response
|
||||
1, // [1:2] is the sub-list for method output_type
|
||||
0, // [0:1] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
} |
||||
|
||||
func init() { file_user_proto_init() } |
||||
func file_user_proto_init() { |
||||
if File_user_proto != nil { |
||||
return |
||||
} |
||||
if !protoimpl.UnsafeEnabled { |
||||
file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
||||
switch v := v.(*Request); i { |
||||
case 0: |
||||
return &v.state |
||||
case 1: |
||||
return &v.sizeCache |
||||
case 2: |
||||
return &v.unknownFields |
||||
default: |
||||
return nil |
||||
} |
||||
} |
||||
file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
||||
switch v := v.(*Response); i { |
||||
case 0: |
||||
return &v.state |
||||
case 1: |
||||
return &v.sizeCache |
||||
case 2: |
||||
return &v.unknownFields |
||||
default: |
||||
return nil |
||||
} |
||||
} |
||||
} |
||||
type x struct{} |
||||
out := protoimpl.TypeBuilder{ |
||||
File: protoimpl.DescBuilder{ |
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
||||
RawDescriptor: file_user_proto_rawDesc, |
||||
NumEnums: 0, |
||||
NumMessages: 2, |
||||
NumExtensions: 0, |
||||
NumServices: 1, |
||||
}, |
||||
GoTypes: file_user_proto_goTypes, |
||||
DependencyIndexes: file_user_proto_depIdxs, |
||||
MessageInfos: file_user_proto_msgTypes, |
||||
}.Build() |
||||
File_user_proto = out.File |
||||
file_user_proto_rawDesc = nil |
||||
file_user_proto_goTypes = nil |
||||
file_user_proto_depIdxs = nil |
||||
} |
@ -1,239 +0,0 @@ |
||||
// Code generated by protoc-gen-validate. DO NOT EDIT.
|
||||
// source: user.proto
|
||||
|
||||
package user |
||||
|
||||
import ( |
||||
"bytes" |
||||
"errors" |
||||
"fmt" |
||||
"net" |
||||
"net/mail" |
||||
"net/url" |
||||
"regexp" |
||||
"sort" |
||||
"strings" |
||||
"time" |
||||
"unicode/utf8" |
||||
|
||||
"google.golang.org/protobuf/types/known/anypb" |
||||
) |
||||
|
||||
// ensure the imports are used
|
||||
var ( |
||||
_ = bytes.MinRead |
||||
_ = errors.New("") |
||||
_ = fmt.Print |
||||
_ = utf8.UTFMax |
||||
_ = (*regexp.Regexp)(nil) |
||||
_ = (*strings.Reader)(nil) |
||||
_ = net.IPv4len |
||||
_ = time.Duration(0) |
||||
_ = (*url.URL)(nil) |
||||
_ = (*mail.Address)(nil) |
||||
_ = anypb.Any{} |
||||
_ = sort.Sort |
||||
) |
||||
|
||||
// Validate checks the field values on Request with the rules defined in the
|
||||
// proto definition for this message. If any rules are violated, the first
|
||||
// error encountered is returned, or nil if there are no violations.
|
||||
func (m *Request) Validate() error { |
||||
return m.validate(false) |
||||
} |
||||
|
||||
// ValidateAll checks the field values on Request with the rules defined in the
|
||||
// proto definition for this message. If any rules are violated, the result is
|
||||
// a list of violation errors wrapped in RequestMultiError, or nil if none found.
|
||||
func (m *Request) ValidateAll() error { |
||||
return m.validate(true) |
||||
} |
||||
|
||||
func (m *Request) validate(all bool) error { |
||||
if m == nil { |
||||
return nil |
||||
} |
||||
|
||||
var errors []error |
||||
|
||||
// no validation rules for UserId
|
||||
|
||||
// no validation rules for UserPassword
|
||||
|
||||
if len(errors) > 0 { |
||||
return RequestMultiError(errors) |
||||
} |
||||
|
||||
return nil |
||||
} |
||||
|
||||
// RequestMultiError is an error wrapping multiple validation errors returned
|
||||
// by Request.ValidateAll() if the designated constraints aren't met.
|
||||
type RequestMultiError []error |
||||
|
||||
// Error returns a concatenation of all the error messages it wraps.
|
||||
func (m RequestMultiError) Error() string { |
||||
var msgs []string |
||||
for _, err := range m { |
||||
msgs = append(msgs, err.Error()) |
||||
} |
||||
return strings.Join(msgs, "; ") |
||||
} |
||||
|
||||
// AllErrors returns a list of validation violation errors.
|
||||
func (m RequestMultiError) AllErrors() []error { return m } |
||||
|
||||
// RequestValidationError is the validation error returned by Request.Validate
|
||||
// if the designated constraints aren't met.
|
||||
type RequestValidationError struct { |
||||
field string |
||||
reason string |
||||
cause error |
||||
key bool |
||||
} |
||||
|
||||
// Field function returns field value.
|
||||
func (e RequestValidationError) Field() string { return e.field } |
||||
|
||||
// Reason function returns reason value.
|
||||
func (e RequestValidationError) Reason() string { return e.reason } |
||||
|
||||
// Cause function returns cause value.
|
||||
func (e RequestValidationError) Cause() error { return e.cause } |
||||
|
||||
// Key function returns key value.
|
||||
func (e RequestValidationError) Key() bool { return e.key } |
||||
|
||||
// ErrorName returns error name.
|
||||
func (e RequestValidationError) ErrorName() string { return "RequestValidationError" } |
||||
|
||||
// Error satisfies the builtin error interface
|
||||
func (e RequestValidationError) Error() string { |
||||
cause := "" |
||||
if e.cause != nil { |
||||
cause = fmt.Sprintf(" | caused by: %v", e.cause) |
||||
} |
||||
|
||||
key := "" |
||||
if e.key { |
||||
key = "key for " |
||||
} |
||||
|
||||
return fmt.Sprintf( |
||||
"invalid %sRequest.%s: %s%s", |
||||
key, |
||||
e.field, |
||||
e.reason, |
||||
cause) |
||||
} |
||||
|
||||
var _ error = RequestValidationError{} |
||||
|
||||
var _ interface { |
||||
Field() string |
||||
Reason() string |
||||
Key() bool |
||||
Cause() error |
||||
ErrorName() string |
||||
} = RequestValidationError{} |
||||
|
||||
// Validate checks the field values on Response with the rules defined in the
|
||||
// proto definition for this message. If any rules are violated, the first
|
||||
// error encountered is returned, or nil if there are no violations.
|
||||
func (m *Response) Validate() error { |
||||
return m.validate(false) |
||||
} |
||||
|
||||
// ValidateAll checks the field values on Response with the rules defined in
|
||||
// the proto definition for this message. If any rules are violated, the
|
||||
// result is a list of violation errors wrapped in ResponseMultiError, or nil
|
||||
// if none found.
|
||||
func (m *Response) ValidateAll() error { |
||||
return m.validate(true) |
||||
} |
||||
|
||||
func (m *Response) validate(all bool) error { |
||||
if m == nil { |
||||
return nil |
||||
} |
||||
|
||||
var errors []error |
||||
|
||||
// no validation rules for Token
|
||||
|
||||
if len(errors) > 0 { |
||||
return ResponseMultiError(errors) |
||||
} |
||||
|
||||
return nil |
||||
} |
||||
|
||||
// ResponseMultiError is an error wrapping multiple validation errors returned
|
||||
// by Response.ValidateAll() if the designated constraints aren't met.
|
||||
type ResponseMultiError []error |
||||
|
||||
// Error returns a concatenation of all the error messages it wraps.
|
||||
func (m ResponseMultiError) Error() string { |
||||
var msgs []string |
||||
for _, err := range m { |
||||
msgs = append(msgs, err.Error()) |
||||
} |
||||
return strings.Join(msgs, "; ") |
||||
} |
||||
|
||||
// AllErrors returns a list of validation violation errors.
|
||||
func (m ResponseMultiError) AllErrors() []error { return m } |
||||
|
||||
// ResponseValidationError is the validation error returned by
|
||||
// Response.Validate if the designated constraints aren't met.
|
||||
type ResponseValidationError struct { |
||||
field string |
||||
reason string |
||||
cause error |
||||
key bool |
||||
} |
||||
|
||||
// Field function returns field value.
|
||||
func (e ResponseValidationError) Field() string { return e.field } |
||||
|
||||
// Reason function returns reason value.
|
||||
func (e ResponseValidationError) Reason() string { return e.reason } |
||||
|
||||
// Cause function returns cause value.
|
||||
func (e ResponseValidationError) Cause() error { return e.cause } |
||||
|
||||
// Key function returns key value.
|
||||
func (e ResponseValidationError) Key() bool { return e.key } |
||||
|
||||
// ErrorName returns error name.
|
||||
func (e ResponseValidationError) ErrorName() string { return "ResponseValidationError" } |
||||
|
||||
// Error satisfies the builtin error interface
|
||||
func (e ResponseValidationError) Error() string { |
||||
cause := "" |
||||
if e.cause != nil { |
||||
cause = fmt.Sprintf(" | caused by: %v", e.cause) |
||||
} |
||||
|
||||
key := "" |
||||
if e.key { |
||||
key = "key for " |
||||
} |
||||
|
||||
return fmt.Sprintf( |
||||
"invalid %sResponse.%s: %s%s", |
||||
key, |
||||
e.field, |
||||
e.reason, |
||||
cause) |
||||
} |
||||
|
||||
var _ error = ResponseValidationError{} |
||||
|
||||
var _ interface { |
||||
Field() string |
||||
Reason() string |
||||
Key() bool |
||||
Cause() error |
||||
ErrorName() string |
||||
} = ResponseValidationError{} |
@ -1,15 +0,0 @@ |
||||
// http.prefix:/
|
||||
// @ts-ignore
|
||||
import {Config,http} from "./http"; |
||||
export interface request { |
||||
userId: number |
||||
userPassword: string |
||||
} |
||||
|
||||
export interface response { |
||||
//密钥
|
||||
token: string |
||||
} |
||||
|
||||
export class userService{ |
||||
} |
@ -1,109 +0,0 @@ |
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v3.18.1
|
||||
// source: user.proto
|
||||
|
||||
package user |
||||
|
||||
import ( |
||||
context "context" |
||||
grpc "google.golang.org/grpc" |
||||
codes "google.golang.org/grpc/codes" |
||||
status "google.golang.org/grpc/status" |
||||
) |
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.32.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion7 |
||||
|
||||
const ( |
||||
User_List_FullMethodName = "/com.diulo.api.user/list" |
||||
) |
||||
|
||||
// UserClient is the client API for User service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
type UserClient interface { |
||||
List(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) |
||||
} |
||||
|
||||
type userClient struct { |
||||
cc grpc.ClientConnInterface |
||||
} |
||||
|
||||
func NewUserClient(cc grpc.ClientConnInterface) UserClient { |
||||
return &userClient{cc} |
||||
} |
||||
|
||||
func (c *userClient) List(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) { |
||||
out := new(Response) |
||||
err := c.cc.Invoke(ctx, User_List_FullMethodName, in, out, opts...) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
return out, nil |
||||
} |
||||
|
||||
// UserServer is the server API for User service.
|
||||
// All implementations must embed UnimplementedUserServer
|
||||
// for forward compatibility
|
||||
type UserServer interface { |
||||
List(context.Context, *Request) (*Response, error) |
||||
mustEmbedUnimplementedUserServer() |
||||
} |
||||
|
||||
// UnimplementedUserServer must be embedded to have forward compatible implementations.
|
||||
type UnimplementedUserServer struct { |
||||
} |
||||
|
||||
func (UnimplementedUserServer) List(context.Context, *Request) (*Response, error) { |
||||
return nil, status.Errorf(codes.Unimplemented, "method List not implemented") |
||||
} |
||||
func (UnimplementedUserServer) mustEmbedUnimplementedUserServer() {} |
||||
|
||||
// UnsafeUserServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to UserServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeUserServer interface { |
||||
mustEmbedUnimplementedUserServer() |
||||
} |
||||
|
||||
func RegisterUserServer(s grpc.ServiceRegistrar, srv UserServer) { |
||||
s.RegisterService(&User_ServiceDesc, srv) |
||||
} |
||||
|
||||
func _User_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
||||
in := new(Request) |
||||
if err := dec(in); err != nil { |
||||
return nil, err |
||||
} |
||||
if interceptor == nil { |
||||
return srv.(UserServer).List(ctx, in) |
||||
} |
||||
info := &grpc.UnaryServerInfo{ |
||||
Server: srv, |
||||
FullMethod: User_List_FullMethodName, |
||||
} |
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
||||
return srv.(UserServer).List(ctx, req.(*Request)) |
||||
} |
||||
return interceptor(ctx, in, info, handler) |
||||
} |
||||
|
||||
// User_ServiceDesc is the grpc.ServiceDesc for User service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var User_ServiceDesc = grpc.ServiceDesc{ |
||||
ServiceName: "com.diulo.api.user", |
||||
HandlerType: (*UserServer)(nil), |
||||
Methods: []grpc.MethodDesc{ |
||||
{ |
||||
MethodName: "list", |
||||
Handler: _User_List_Handler, |
||||
}, |
||||
}, |
||||
Streams: []grpc.StreamDesc{}, |
||||
Metadata: "user.proto", |
||||
} |
@ -1,14 +0,0 @@ |
||||
package user |
||||
|
||||
import ( |
||||
"context" |
||||
"git.diulo.com/mogfee/kit/transport/http" |
||||
) |
||||
|
||||
type UserHTTPServer interface { |
||||
List(context.Context, *Request) (*Response, error) |
||||
} |
||||
|
||||
func RegisterUserHTTPServer(s *http.Server, srv UserServer) { |
||||
r := s.Route("/") |
||||
} |
Loading…
Reference in new issue