MCPcopy Create free account
hub / github.com/QuantumNous/new-api / DeleteTaskPluginVersion

Function DeleteTaskPluginVersion

model/task_plugin.go:199–233  ·  view source on GitHub ↗
(key, version string)

Source from the content-addressed store, hash-verified

197}
198
199func DeleteTaskPluginVersion(key, version string) (TaskPluginDeleteResult, error) {
200 result := TaskPluginDeleteResult{}
201 err := DB.Transaction(func(tx *gorm.DB) error {
202 var plugin TaskPlugin
203 if err := lockForUpdate(tx).Where(&TaskPlugin{Key: key, Version: version}).First(&plugin).Error; err != nil {
204 return err
205 }
206 result.DeletedActive = plugin.Active
207 if err := tx.Delete(&plugin).Error; err != nil {
208 return err
209 }
210 if !plugin.Active {
211 return nil
212 }
213
214 var promoted TaskPlugin
215 err := lockForUpdate(tx).
216 Where(&TaskPlugin{Key: key}).
217 Order("created_at DESC, id DESC").
218 First(&promoted).Error
219 if errors.Is(err, gorm.ErrRecordNotFound) {
220 return nil
221 }
222 if err != nil {
223 return err
224 }
225 if err = tx.Model(&promoted).Update("active", true).Error; err != nil {
226 return err
227 }
228 promoted.Active = true
229 result.Promoted = &promoted
230 return nil
231 })
232 return result, err
233}

Calls 3

lockForUpdateFunction · 0.85
DeleteMethod · 0.45
UpdateMethod · 0.45