Skip to content

Commit c87cc3d

Browse files
committed
add shares apis
1 parent c691bd1 commit c87cc3d

File tree

15 files changed

+896
-29
lines changed

15 files changed

+896
-29
lines changed

iam/apis/api_delete_group.go

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
2+
3+
package apis
4+
5+
import (
6+
"context"
7+
auth "github.com/qiniu/go-sdk/v7/auth"
8+
deletegroup "github.com/qiniu/go-sdk/v7/iam/apis/delete_group"
9+
uplog "github.com/qiniu/go-sdk/v7/internal/uplog"
10+
errors "github.com/qiniu/go-sdk/v7/storagev2/errors"
11+
httpclient "github.com/qiniu/go-sdk/v7/storagev2/http_client"
12+
region "github.com/qiniu/go-sdk/v7/storagev2/region"
13+
uptoken "github.com/qiniu/go-sdk/v7/storagev2/uptoken"
14+
"strings"
15+
"time"
16+
)
17+
18+
type innerDeleteGroupRequest deletegroup.Request
19+
20+
func (path *innerDeleteGroupRequest) buildPath() ([]string, error) {
21+
allSegments := make([]string, 0, 1)
22+
if path.Alias != "" {
23+
allSegments = append(allSegments, path.Alias)
24+
} else {
25+
return nil, errors.MissingRequiredFieldError{Name: "Alias"}
26+
}
27+
return allSegments, nil
28+
}
29+
30+
type DeleteGroupRequest = deletegroup.Request
31+
type DeleteGroupResponse = deletegroup.Response
32+
33+
// 删除用户分组
34+
func (iam *Iam) DeleteGroup(ctx context.Context, request *DeleteGroupRequest, options *Options) (*DeleteGroupResponse, error) {
35+
if options == nil {
36+
options = &Options{}
37+
}
38+
innerRequest := (*innerDeleteGroupRequest)(request)
39+
serviceNames := []region.ServiceName{region.ServiceApi}
40+
if innerRequest.Credentials == nil && iam.client.GetCredentials() == nil {
41+
return nil, errors.MissingRequiredFieldError{Name: "Credentials"}
42+
}
43+
pathSegments := make([]string, 0, 4)
44+
pathSegments = append(pathSegments, "iam", "v1", "groups")
45+
if segments, err := innerRequest.buildPath(); err != nil {
46+
return nil, err
47+
} else {
48+
pathSegments = append(pathSegments, segments...)
49+
}
50+
path := "/" + strings.Join(pathSegments, "/")
51+
var rawQuery string
52+
uplogInterceptor, err := uplog.NewRequestUplog("deleteGroup", "", "", func() (string, error) {
53+
credentials := innerRequest.Credentials
54+
if credentials == nil {
55+
credentials = iam.client.GetCredentials()
56+
}
57+
putPolicy, err := uptoken.NewPutPolicy("", time.Now().Add(time.Hour))
58+
if err != nil {
59+
return "", err
60+
}
61+
return uptoken.NewSigner(putPolicy, credentials).GetUpToken(ctx)
62+
})
63+
if err != nil {
64+
return nil, err
65+
}
66+
req := httpclient.Request{Method: "DELETE", ServiceNames: serviceNames, Path: path, RawQuery: rawQuery, Endpoints: options.OverwrittenEndpoints, Region: options.OverwrittenRegion, Interceptors: []httpclient.Interceptor{uplogInterceptor}, AuthType: auth.TokenQiniu, Credentials: innerRequest.Credentials, OnRequestProgress: options.OnRequestProgress}
67+
if options.OverwrittenEndpoints == nil && options.OverwrittenRegion == nil && iam.client.GetRegions() == nil {
68+
bucketHosts := httpclient.DefaultBucketHosts()
69+
70+
req.Region = iam.client.GetAllRegions()
71+
if req.Region == nil {
72+
if options.OverwrittenBucketHosts != nil {
73+
if bucketHosts, err = options.OverwrittenBucketHosts.GetEndpoints(ctx); err != nil {
74+
return nil, err
75+
}
76+
}
77+
allRegionsOptions := region.AllRegionsProviderOptions{UseInsecureProtocol: iam.client.UseInsecureProtocol(), HostFreezeDuration: iam.client.GetHostFreezeDuration(), Resolver: iam.client.GetResolver(), Chooser: iam.client.GetChooser(), BeforeSign: iam.client.GetBeforeSignCallback(), AfterSign: iam.client.GetAfterSignCallback(), SignError: iam.client.GetSignErrorCallback(), BeforeResolve: iam.client.GetBeforeResolveCallback(), AfterResolve: iam.client.GetAfterResolveCallback(), ResolveError: iam.client.GetResolveErrorCallback(), BeforeBackoff: iam.client.GetBeforeBackoffCallback(), AfterBackoff: iam.client.GetAfterBackoffCallback(), BeforeRequest: iam.client.GetBeforeRequestCallback(), AfterResponse: iam.client.GetAfterResponseCallback()}
78+
if hostRetryConfig := iam.client.GetHostRetryConfig(); hostRetryConfig != nil {
79+
allRegionsOptions.RetryMax = hostRetryConfig.RetryMax
80+
allRegionsOptions.Backoff = hostRetryConfig.Backoff
81+
}
82+
credentials := innerRequest.Credentials
83+
if credentials == nil {
84+
credentials = iam.client.GetCredentials()
85+
}
86+
if req.Region, err = region.NewAllRegionsProvider(credentials, bucketHosts, &allRegionsOptions); err != nil {
87+
return nil, err
88+
}
89+
}
90+
}
91+
resp, err := iam.client.Do(ctx, &req)
92+
if err != nil {
93+
return nil, err
94+
}
95+
return &DeleteGroupResponse{}, resp.Body.Close()
96+
}

iam/apis/delete_group/api.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
2+
3+
// 删除用户分组
4+
package delete_group
5+
6+
import credentials "github.com/qiniu/go-sdk/v7/storagev2/credentials"
7+
8+
// 调用 API 所用的请求
9+
type Request struct {
10+
Alias string // 用户分组别名
11+
Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider
12+
}
13+
14+
// 获取 API 所用的响应
15+
type Response struct{}

internal/api-generator/client.go

+40-15
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,20 @@ func (description *ApiDetailedDescription) generatePackage(group *jen.Group, opt
178178
}
179179
}
180180
}
181-
group.Add(jen.Id("pathSegments").Op(":=").Make(jen.Index().String(), jen.Lit(0), jen.Lit(guessPathSegmentsCount)))
181+
if guessPathSegmentsCount > 0 {
182+
group.Add(jen.Id("pathSegments").Op(":=").Make(jen.Index().String(), jen.Lit(0), jen.Lit(guessPathSegmentsCount)))
183+
} else {
184+
group.Add(jen.Id("pathSegments").Op(":=").Make(jen.Index().String(), jen.Lit(0)))
185+
}
182186
if description.BasePath != "" {
183-
group.Add(jen.Id("pathSegments").Op("=").AppendFunc(func(group *jen.Group) {
184-
group.Add(jen.Id("pathSegments"))
185-
for _, pathSegment := range description.getBasePathSegments() {
186-
group.Add(jen.Lit(pathSegment))
187-
}
188-
}))
187+
if basePathSegments := description.getBasePathSegments(); len(basePathSegments) > 0 {
188+
group.Add(jen.Id("pathSegments").Op("=").AppendFunc(func(group *jen.Group) {
189+
group.Add(jen.Id("pathSegments"))
190+
for _, pathSegment := range basePathSegments {
191+
group.Add(jen.Lit(pathSegment))
192+
}
193+
}))
194+
}
189195
}
190196
if description.Request.PathParams != nil {
191197
group.Add(
@@ -207,14 +213,19 @@ func (description *ApiDetailedDescription) generatePackage(group *jen.Group, opt
207213
)
208214
}
209215
if description.PathSuffix != "" {
210-
group.Add(jen.Id("pathSegments").Op("=").AppendFunc(func(group *jen.Group) {
211-
group.Add(jen.Id("pathSegments"))
212-
for _, pathSegment := range description.getPathSuffixSegments() {
213-
group.Add(jen.Lit(pathSegment))
214-
}
215-
}))
216+
if suffixSegments := description.getPathSuffixSegments(); len(suffixSegments) > 0 {
217+
group.Add(jen.Id("pathSegments").Op("=").AppendFunc(func(group *jen.Group) {
218+
group.Add(jen.Id("pathSegments"))
219+
for _, pathSegment := range suffixSegments {
220+
group.Add(jen.Lit(pathSegment))
221+
}
222+
}))
223+
}
216224
}
217225
group.Add(jen.Id("path").Op(":=").Lit("/").Op("+").Qual("strings", "Join").Call(jen.Id("pathSegments"), jen.Lit("/")))
226+
if description.PathSuffix == "/" {
227+
group.Add(jen.Id("path").Op("+=").Lit("/"))
228+
}
218229
if description.Command != "" {
219230
group.Add(jen.Id("rawQuery").Op(":=").Lit(description.Command + "&"))
220231
} else {
@@ -867,13 +878,27 @@ func (description *ApiDetailedDescription) addJsonMarshalerUnmarshaler(group *je
867878
func (description *ApiDetailedDescription) getBasePathSegments() []string {
868879
basePath := strings.TrimPrefix(description.BasePath, "/")
869880
basePath = strings.TrimSuffix(basePath, "/")
870-
return strings.Split(basePath, "/")
881+
segments := strings.Split(basePath, "/")
882+
newSegments := make([]string, 0, len(segments))
883+
for _, segment := range segments {
884+
if segment != "" {
885+
newSegments = append(newSegments, segment)
886+
}
887+
}
888+
return newSegments
871889
}
872890

873891
func (description *ApiDetailedDescription) getPathSuffixSegments() []string {
874892
pathSuffix := strings.TrimPrefix(description.PathSuffix, "/")
875893
pathSuffix = strings.TrimSuffix(pathSuffix, "/")
876-
return strings.Split(pathSuffix, "/")
894+
segments := strings.Split(pathSuffix, "/")
895+
newSegments := make([]string, 0, len(segments))
896+
for _, segment := range segments {
897+
if segment != "" {
898+
newSegments = append(newSegments, segment)
899+
}
900+
}
901+
return newSegments
877902
}
878903

879904
func (description *ApiDetailedDescription) isBucketService() bool {

internal/api-generator/form.go

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"errors"
54
"fmt"
65

76
"github.com/dave/jennifer/jen"
@@ -217,9 +216,6 @@ func (form *FormUrlencodedRequestStruct) addSetCall(group *jen.Group, field Form
217216
)
218217
fieldName := field.camelCaseName()
219218
if field.Multiple {
220-
if field.Optional.ToOptionalType() != OptionalTypeRequired {
221-
return errors.New("multiple field must be required")
222-
}
223219
valueConvertCode, err = field.Type.GenerateConvertCodeToString(jen.Id("value"))
224220
if err != nil {
225221
return err

internal/api-generator/query.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -191,23 +191,22 @@ func (names QueryNames) generateSetCall(group *jen.Group, queryName QueryName, q
191191
fieldName := queryName.camelCaseName()
192192
field := jen.Id("query").Dot(fieldName)
193193
if queryName.Multiple {
194-
if queryName.Optional.ToOptionalType() != OptionalTypeRequired {
195-
return errors.New("multiple field must be required")
196-
}
197194
valueConvertCode, err = queryName.QueryType.GenerateConvertCodeToString(jen.Id("value"))
198195
if err != nil {
199196
return err
200197
}
201-
group.Add(jen.If(jen.Len(jen.Id("query").Dot(fieldName)).Op(">").Lit(0)).
198+
code := jen.If(jen.Len(jen.Id("query").Dot(fieldName)).Op(">").Lit(0)).
202199
BlockFunc(func(group *jen.Group) {
203200
group.Add(
204201
jen.For(jen.List(jen.Id("_"), jen.Id("value")).Op(":=").Range().Add(jen.Id("query").Dot(fieldName))).BlockFunc(func(group *jen.Group) {
205202
group.Add(jen.Id(queryVarName).Dot("Add").Call(jen.Lit(queryName.QueryName), valueConvertCode))
206203
}),
207204
)
208-
}).
209-
Else().
210-
BlockFunc(appendMissingRequiredFieldErrorFunc(fieldName)))
205+
})
206+
if queryName.Optional.ToOptionalType() == OptionalTypeRequired {
207+
code = code.Else().BlockFunc(appendMissingRequiredFieldErrorFunc(fieldName))
208+
}
209+
group.Add(code)
211210
} else {
212211
if queryName.Optional.ToOptionalType() == OptionalTypeNullable {
213212
valueConvertCode, err = queryName.QueryType.GenerateConvertCodeToString(jen.Op("*").Add(field))

0 commit comments

Comments
 (0)