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 }