MCPcopy Index your code
hub / github.com/aiprodcoder/MIXAPI / UpdateToken

Function UpdateToken

controller/token.go:177–242  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

175}
176
177func UpdateToken(c *gin.Context) {
178 userId := c.GetInt("id")
179 statusOnly := c.Query("status_only")
180 token := model.Token{}
181 err := c.ShouldBindJSON(&token)
182 if err != nil {
183 common.ApiError(c, err)
184 return
185 }
186 if len(token.Name) > 30 {
187 c.JSON(http.StatusOK, gin.H{
188 "success": false,
189 "message": "令牌名称过长",
190 })
191 return
192 }
193 cleanToken, err := model.GetTokenByIds(token.Id, userId)
194 if err != nil {
195 common.ApiError(c, err)
196 return
197 }
198 if token.Status == common.TokenStatusEnabled {
199 if cleanToken.Status == common.TokenStatusExpired && cleanToken.ExpiredTime <= common.GetTimestamp() && cleanToken.ExpiredTime != -1 {
200 c.JSON(http.StatusOK, gin.H{
201 "success": false,
202 "message": "令牌已过期,无法启用,请先修改令牌过期时间,或者设置为永不过期",
203 })
204 return
205 }
206 if cleanToken.Status == common.TokenStatusExhausted && cleanToken.RemainQuota <= 0 && !cleanToken.UnlimitedQuota {
207 c.JSON(http.StatusOK, gin.H{
208 "success": false,
209 "message": "令牌可用额度已用尽,无法启用,请先修改令牌剩余额度,或者设置为无限额度",
210 })
211 return
212 }
213 }
214 if statusOnly != "" {
215 cleanToken.Status = token.Status
216 } else {
217 // If you add more fields, please also update token.Update()
218 cleanToken.Name = token.Name
219 cleanToken.ExpiredTime = token.ExpiredTime
220 cleanToken.RemainQuota = token.RemainQuota
221 cleanToken.UnlimitedQuota = token.UnlimitedQuota
222 cleanToken.ModelLimitsEnabled = token.ModelLimitsEnabled
223 cleanToken.ModelLimits = token.ModelLimits
224 cleanToken.AllowIps = token.AllowIps
225 cleanToken.Group = token.Group
226 cleanToken.RateLimitPerMinute = token.RateLimitPerMinute
227 cleanToken.RateLimitPerDay = token.RateLimitPerDay
228 cleanToken.ChannelTag = token.ChannelTag
229 cleanToken.TotalUsageLimit = token.TotalUsageLimit
230 }
231 err = cleanToken.Update()
232 if err != nil {
233 common.ApiError(c, err)
234 return

Callers

nothing calls this directly

Calls 4

ApiErrorFunction · 0.92
GetTokenByIdsFunction · 0.92
GetTimestampFunction · 0.92
UpdateMethod · 0.45

Tested by

no test coverage detected