//curl -i -X DELETE 'localhost:9090/sshKeys/4444444?logid=4223' func (this *SshKeysController) Delete() { uid := this.Ctx.Input.Params[":objectId"] keyname := this.Ctx.Input.Params[":keyname"] if uid == "" { this.Ctx.Output.SetStatus(403) this.Ctx.Output.Body([]byte(`{"result":1,"error":"param error"}`)) this.StopRun() } logid, _ := this.GetInt("logid") if logid == 0 { this.Ctx.Output.SetStatus(403) this.Ctx.Output.Body([]byte(`{"result":1,"error":"logid param error"}`)) this.StopRun() } logs.Normal("delete param:", "uid:", uid, "keyname:", keyname, "logid:", logid) dbconn, err := models.InitDbConn(logid) if err != nil { logs.Error("init db conn error:", err, "logid:", logid) this.Ctx.Output.SetStatus(500) this.Ctx.Output.Body([]byte(`{"result":1,"error":"init db conn error"}`)) this.StopRun() } defer dbconn.Close() dbconn.Exec("START TRANSACTION") logs.Normal("start transaction", "logid:", logid) sshKeysM := new(models.SshKeysManage) if keyname != "" { err = sshKeysM.DeleteByKey(dbconn, uid, keyname, logid) if err != nil { dbconn.Exec("ROLLBACK") logs.Normal("ROLLBACK", "logid:", logid) logs.Error("delete by key error:", err, "logid:", logid) this.Ctx.Output.SetStatus(500) this.Ctx.Output.Body([]byte(`{"result":1,"error":"` + err.Error() + `"}`)) this.StopRun() } } else { err = sshKeysM.Delete(dbconn, uid, logid) if err != nil { dbconn.Exec("ROLLBACK") logs.Normal("ROLLBACK", "logid:", logid) logs.Error("delete by uid error:", err, "logid:", logid) this.Ctx.Output.SetStatus(500) this.Ctx.Output.Body([]byte(`{"result":1,"error":"` + err.Error() + `"}`)) this.StopRun() } } //reload ssh public key err = this.reloadSshPublicKeys(dbconn, uid, logid) if err != nil { dbconn.Exec("ROLLBACK") logs.Normal("ROLLBACK", "logid:", logid) logs.Error("reload ssh public key error:", err, "logid:", logid) this.Ctx.Output.SetStatus(500) this.Ctx.Output.Body([]byte(`{"result":1,"error":` + err.Error() + `}`)) this.StopRun() } dbconn.Exec("COMMIT") logs.Normal("COMMIT", "logid:", logid) logs.Normal("delete over", "logid:", logid) this.Ctx.Output.Body([]byte(`{"result":0}`)) this.StopRun() }