gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/ext/model.go (about)

     1  /*
     2   * MIT License
     3   *
     4   * Copyright (c) 2022 Lark Technologies Pte. Ltd.
     5   *
     6   * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
     7   *
     8   * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software.
     9   *
    10   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    11   */
    12  
    13  package larkext
    14  
    15  import larkcore "gitee.com/larksuite/oapi-sdk-go/v3/core"
    16  
    17  const (
    18  	FileTypeDoc     = "doc"
    19  	FileTypeSheet   = "sheet"
    20  	FileTypeBitable = "bitable"
    21  )
    22  
    23  const (
    24  	GrantTypeAuthorizationCode = "authorization_code"
    25  	GrantTypeRefreshCode       = "refresh_token"
    26  )
    27  
    28  type AuthenAccessTokenReqBody struct {
    29  	GrantType string `json:"grant_type,omitempty"`
    30  	Code      string `json:"code,omitempty"`
    31  }
    32  
    33  type AuthenAccessTokenReqBodyBuilder struct {
    34  	grantType string `json:"grant_type,omitempty"`
    35  	code      string `json:"code,omitempty"`
    36  }
    37  
    38  func NewAuthenAccessTokenReqBodyBuilder() *AuthenAccessTokenReqBodyBuilder {
    39  	return &AuthenAccessTokenReqBodyBuilder{}
    40  }
    41  
    42  func (a *AuthenAccessTokenReqBodyBuilder) GrantType(grantType string) *AuthenAccessTokenReqBodyBuilder {
    43  	a.grantType = grantType
    44  	return a
    45  }
    46  
    47  func (a *AuthenAccessTokenReqBodyBuilder) Code(code string) *AuthenAccessTokenReqBodyBuilder {
    48  	a.code = code
    49  	return a
    50  }
    51  
    52  func (a *AuthenAccessTokenReqBodyBuilder) Build() *AuthenAccessTokenReqBody {
    53  	body := &AuthenAccessTokenReqBody{}
    54  	body.GrantType = a.grantType
    55  	body.Code = a.code
    56  	return body
    57  }
    58  
    59  type AuthenAccessTokenReq struct {
    60  	apiReq *larkcore.ApiReq
    61  	Body   *AuthenAccessTokenReqBody `body:""`
    62  }
    63  
    64  type AuthenAccessTokenReqBuilder struct {
    65  	apiReq *larkcore.ApiReq
    66  	body   *AuthenAccessTokenReqBody `body:""`
    67  }
    68  
    69  func NewAuthenAccessTokenReqBuilder() *AuthenAccessTokenReqBuilder {
    70  	return &AuthenAccessTokenReqBuilder{}
    71  }
    72  
    73  func (a *AuthenAccessTokenReqBuilder) Body(body *AuthenAccessTokenReqBody) *AuthenAccessTokenReqBuilder {
    74  	a.body = body
    75  	return a
    76  }
    77  
    78  func (a *AuthenAccessTokenReqBuilder) Build() *AuthenAccessTokenReq {
    79  	req := &AuthenAccessTokenReq{
    80  		apiReq: &larkcore.ApiReq{
    81  			PathParams:  larkcore.PathParams{},
    82  			QueryParams: larkcore.QueryParams{},
    83  		},
    84  		Body: a.body,
    85  	}
    86  	req.apiReq.Body = a.body
    87  	return req
    88  }
    89  
    90  type AuthenAccessTokenResp struct {
    91  	*larkcore.ApiResp `json:"-"`
    92  	larkcore.CodeError
    93  	Body *AuthenAccessTokenRespBody `body:""`
    94  }
    95  
    96  func (c *AuthenAccessTokenResp) Success() bool {
    97  	return c.Code == 0
    98  }
    99  
   100  type AuthenAccessTokenRespBody struct {
   101  	AccessToken      string `json:"access_token,omitempty"`
   102  	TokenType        string `json:"token_type,omitempty"`
   103  	ExpiresIn        int64  `json:"expires_in,omitempty"`
   104  	Name             string `json:"name,omitempty"`
   105  	EnName           string `json:"en_name,omitempty"`
   106  	AvatarURL        string `json:"avatar_url,omitempty"`
   107  	AvatarThumb      string `json:"avatar_thumb,omitempty"`
   108  	AvatarMiddle     string `json:"avatar_middle,omitempty"`
   109  	AvatarBig        string `json:"avatar_big,omitempty"`
   110  	OpenID           string `json:"open_id,omitempty"`  //
   111  	UnionID          string `json:"union_id,omitempty"` //
   112  	Email            string `json:"email,omitempty"`
   113  	EnterpriseEmail  string `json:"enterprise_email,omitempty"`
   114  	UserID           string `json:"user_id,omitempty"`
   115  	Mobile           string `json:"mobile,omitempty"`
   116  	TenantKey        string `json:"tenant_key,omitempty"`
   117  	RefreshExpiresIn int64  `json:"refresh_expires_in,omitempty"`
   118  	RefreshToken     string `json:"refresh_token,omitempty"`
   119  }
   120  
   121  type RefreshAuthenAccessTokenReqBody struct {
   122  	GrantType    string `json:"grant_type,omitempty"`
   123  	RefreshToken string `json:"refresh_token,omitempty"`
   124  }
   125  
   126  type RefreshAuthenAccessTokenReqBodyBuilder struct {
   127  	grantType    string `json:"grant_type,omitempty"`
   128  	refreshToken string `json:"refresh_token,omitempty"`
   129  }
   130  
   131  func NewRefreshAuthenAccessTokenReqBodyBuilder() *RefreshAuthenAccessTokenReqBodyBuilder {
   132  	return &RefreshAuthenAccessTokenReqBodyBuilder{}
   133  }
   134  
   135  func (r *RefreshAuthenAccessTokenReqBodyBuilder) GrantType(grantType string) *RefreshAuthenAccessTokenReqBodyBuilder {
   136  	r.grantType = grantType
   137  	return r
   138  }
   139  
   140  func (r *RefreshAuthenAccessTokenReqBodyBuilder) RefreshToken(refreshToken string) *RefreshAuthenAccessTokenReqBodyBuilder {
   141  	r.refreshToken = refreshToken
   142  	return r
   143  }
   144  
   145  func (r *RefreshAuthenAccessTokenReqBodyBuilder) Build() *RefreshAuthenAccessTokenReqBody {
   146  	body := &RefreshAuthenAccessTokenReqBody{}
   147  	body.GrantType = r.grantType
   148  	body.RefreshToken = r.refreshToken
   149  	return body
   150  }
   151  
   152  type RefreshAuthenAccessTokenReq struct {
   153  	apiReq *larkcore.ApiReq
   154  	Body   *RefreshAuthenAccessTokenReqBody `body:""`
   155  }
   156  
   157  type RefreshAuthenAccessTokenReqBuilder struct {
   158  	apiReq *larkcore.ApiReq
   159  	body   *RefreshAuthenAccessTokenReqBody `body:""`
   160  }
   161  
   162  func NewRefreshAuthenAccessTokenReqBuilder() *RefreshAuthenAccessTokenReqBuilder {
   163  	return &RefreshAuthenAccessTokenReqBuilder{}
   164  }
   165  
   166  func (r *RefreshAuthenAccessTokenReqBuilder) Body(body *RefreshAuthenAccessTokenReqBody) *RefreshAuthenAccessTokenReqBuilder {
   167  	r.body = body
   168  	return r
   169  }
   170  
   171  func (r *RefreshAuthenAccessTokenReqBuilder) Build() *RefreshAuthenAccessTokenReq {
   172  	req := &RefreshAuthenAccessTokenReq{
   173  		apiReq: &larkcore.ApiReq{
   174  			PathParams:  larkcore.PathParams{},
   175  			QueryParams: larkcore.QueryParams{},
   176  		},
   177  		Body: r.body,
   178  	}
   179  	req.apiReq.Body = r.body
   180  	return req
   181  }
   182  
   183  type RefreshAuthenAccessTokenResp struct {
   184  	*larkcore.ApiResp `json:"-"`
   185  	larkcore.CodeError
   186  	Data *RefreshAuthenAccessTokenRespBody `json:"data"`
   187  }
   188  
   189  type RefreshAuthenAccessTokenRespBody struct {
   190  	AccessToken      string `json:"access_token,omitempty"`
   191  	TokenType        string `json:"token_type,omitempty"`
   192  	ExpiresIn        int64  `json:"expires_in,omitempty"`
   193  	Name             string `json:"name,omitempty"`
   194  	EnName           string `json:"en_name,omitempty"`
   195  	AvatarURL        string `json:"avatar_url,omitempty"`
   196  	AvatarThumb      string `json:"avatar_thumb,omitempty"`
   197  	AvatarMiddle     string `json:"avatar_middle,omitempty"`
   198  	AvatarBig        string `json:"avatar_big,omitempty"`
   199  	OpenID           string `json:"open_id,omitempty"`  //
   200  	UnionID          string `json:"union_id,omitempty"` //
   201  	Email            string `json:"email,omitempty"`
   202  	UserID           string `json:"user_id,omitempty"`
   203  	Mobile           string `json:"mobile,omitempty"`
   204  	TenantKey        string `json:"tenant_key,omitempty"`
   205  	RefreshExpiresIn int64  `json:"refresh_expires_in,omitempty"`
   206  	RefreshToken     string `json:"refresh_token,omitempty"`
   207  }
   208  
   209  func (c *RefreshAuthenAccessTokenResp) Success() bool {
   210  	return c.Code == 0
   211  }
   212  
   213  type AuthenUserInfoResp struct {
   214  	*larkcore.ApiResp `json:"-"`
   215  	larkcore.CodeError
   216  	Data *AuthenUserInfoRespBody `json:"data"`
   217  }
   218  
   219  func (c *AuthenUserInfoResp) Success() bool {
   220  	return c.Code == 0
   221  }
   222  
   223  type AuthenUserInfoRespBody struct {
   224  	Name            string `json:"name,omitempty"`
   225  	EnName          string `json:"en_name,omitempty"`
   226  	AvatarURL       string `json:"avatar_url,omitempty"`
   227  	AvatarThumb     string `json:"avatar_thumb,omitempty"`
   228  	AvatarMiddle    string `json:"avatar_middle,omitempty"`
   229  	AvatarBig       string `json:"avatar_big,omitempty"`
   230  	OpenID          string `json:"open_id,omitempty"`
   231  	UnionID         string `json:"union_id,omitempty"`
   232  	Email           string `json:"email,omitempty"`
   233  	EnterpriseEmail string `json:"enterprise_email,omitempty"`
   234  	UserID          string `json:"user_id,omitempty"`
   235  	Mobile          string `json:"mobile,omitempty"`
   236  	TenantKey       string `json:"tenant_key,omitempty"`
   237  }
   238  
   239  type CreateFileReq struct {
   240  	apiReq *larkcore.ApiReq
   241  	Body   *CreateFileReqBody `body:""`
   242  }
   243  
   244  type CreateFileResp struct {
   245  	*larkcore.ApiResp `json:"-"`
   246  	larkcore.CodeError
   247  	Data *CreateFileRespData `json:"data"`
   248  }
   249  
   250  func (c *CreateFileResp) Success() bool {
   251  	return c.Code == 0
   252  }
   253  
   254  type CreateFileRespData struct {
   255  	Url      string `json:"url,omitempty"`
   256  	Token    string `json:"token,omitempty"`
   257  	Revision int64  `json:"revision,omitempty"`
   258  }
   259  
   260  type CreateFileReqBody struct {
   261  	Title string `json:"title,omitempty"`
   262  	Type_ string `json:"type,omitempty"`
   263  }
   264  
   265  type CreateFileReqBodyBuilder struct {
   266  	title string `json:"title,omitempty"`
   267  	type_ string `json:"type,omitempty"`
   268  }
   269  
   270  func NewCreateFileReqBodyBuilder() *CreateFileReqBodyBuilder {
   271  	return &CreateFileReqBodyBuilder{}
   272  }
   273  
   274  func (c *CreateFileReqBodyBuilder) Title(title string) *CreateFileReqBodyBuilder {
   275  	c.title = title
   276  	return c
   277  }
   278  
   279  func (c *CreateFileReqBodyBuilder) Type(type_ string) *CreateFileReqBodyBuilder {
   280  	c.type_ = type_
   281  	return c
   282  }
   283  
   284  func (c *CreateFileReqBodyBuilder) Build() *CreateFileReqBody {
   285  	body := &CreateFileReqBody{}
   286  	body.Type_ = c.type_
   287  	body.Title = c.title
   288  	return body
   289  }
   290  
   291  type CreateFileReqBuilder struct {
   292  	apiReq *larkcore.ApiReq
   293  	body   *CreateFileReqBody `body:""`
   294  }
   295  
   296  func NewCreateFileReqBuilder() *CreateFileReqBuilder {
   297  	builder := &CreateFileReqBuilder{}
   298  	builder.apiReq = &larkcore.ApiReq{
   299  		PathParams:  larkcore.PathParams{},
   300  		QueryParams: larkcore.QueryParams{},
   301  	}
   302  	return builder
   303  }
   304  
   305  func (c *CreateFileReqBuilder) FolderToken(folderToken string) *CreateFileReqBuilder {
   306  	c.apiReq.PathParams.Set("folderToken", folderToken)
   307  	return c
   308  }
   309  
   310  func (c *CreateFileReqBuilder) Body(body *CreateFileReqBody) *CreateFileReqBuilder {
   311  	c.body = body
   312  	return c
   313  }
   314  
   315  func (c *CreateFileReqBuilder) Build() *CreateFileReq {
   316  	req := &CreateFileReq{}
   317  	req.apiReq = &larkcore.ApiReq{}
   318  	req.apiReq.Body = c.body
   319  	req.apiReq.PathParams = c.apiReq.PathParams
   320  	return req
   321  }