|
@ -709,6 +709,12 @@ func Comment(ctx *middleware.Context, params martini.Params) { |
|
|
attachments := strings.Split(params["attachments"], ",") |
|
|
attachments := strings.Split(params["attachments"], ",") |
|
|
|
|
|
|
|
|
for _, a := range attachments { |
|
|
for _, a := range attachments { |
|
|
|
|
|
a = strings.Trim(a, " ") |
|
|
|
|
|
|
|
|
|
|
|
if len(a) == 0 { |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
aId, err := base.StrTo(a).Int64() |
|
|
aId, err := base.StrTo(a).Int64() |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
if err != nil { |
|
@ -1002,12 +1008,23 @@ func UpdateMilestonePost(ctx *middleware.Context, params martini.Params, form au |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func IssuePostAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
func IssuePostAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
issueId, _ := base.StrTo(params["index"]).Int64() |
|
|
|
|
|
|
|
|
index, _ := base.StrTo(params["index"]).Int64() |
|
|
|
|
|
|
|
|
if issueId == 0 { |
|
|
|
|
|
|
|
|
if index == 0 { |
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
"ok": false, |
|
|
"ok": false, |
|
|
"error": "invalid issue id", |
|
|
|
|
|
|
|
|
"error": "invalid issue index", |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, index) |
|
|
|
|
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
|
|
|
"ok": false, |
|
|
|
|
|
"error": "invalid comment id", |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
return |
|
|
return |
|
@ -1089,7 +1106,7 @@ func IssuePostAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
a, err := models.CreateAttachment(issueId, commentId, header.Filename, out.Name()) |
|
|
|
|
|
|
|
|
a, err := models.CreateAttachment(issue.Id, commentId, header.Filename, out.Name()) |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
if err != nil { |
|
|
ctx.JSON(500, map[string]interface{}{ |
|
|
ctx.JSON(500, map[string]interface{}{ |
|
@ -1121,16 +1138,29 @@ func IssueGetAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
log.Error("path=%s name=%s", attachment.Path, attachment.Name) |
|
|
|
|
|
|
|
|
ctx.ServeFile(attachment.Path, attachment.Name) |
|
|
ctx.ServeFile(attachment.Path, attachment.Name) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func IssueDeleteAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
func IssueDeleteAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
issueId, _ := base.StrTo(params["index"]).Int64() |
|
|
|
|
|
|
|
|
index, _ := base.StrTo(params["index"]).Int64() |
|
|
|
|
|
|
|
|
if issueId == 0 { |
|
|
|
|
|
|
|
|
if index == 0 { |
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
"ok": false, |
|
|
"ok": false, |
|
|
"error": "invalid issue id", |
|
|
|
|
|
|
|
|
"error": "invalid issue index", |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, index) |
|
|
|
|
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
|
|
|
"ok": false, |
|
|
|
|
|
"error": "invalid comment id", |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
return |
|
|
return |
|
@ -1189,7 +1219,7 @@ func IssueDeleteAttachment(ctx *middleware.Context, params martini.Params) { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if attachment.IssueId != issueId { |
|
|
|
|
|
|
|
|
if attachment.IssueId != issue.Id { |
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
ctx.JSON(400, map[string]interface{}{ |
|
|
"ok": false, |
|
|
"ok": false, |
|
|
"error": "attachment not associated with the given issue", |
|
|
"error": "attachment not associated with the given issue", |
|
|