ChangeStatus changes issue status to open or closed.
(doer *User, repo *Repository, isClosed bool)
| 470 | |
| 471 | // ChangeStatus changes issue status to open or closed. |
| 472 | func (issue *Issue) ChangeStatus(doer *User, repo *Repository, isClosed bool) (err error) { |
| 473 | sess := x.NewSession() |
| 474 | defer sess.Close() |
| 475 | if err = sess.Begin(); err != nil { |
| 476 | return err |
| 477 | } |
| 478 | |
| 479 | if err = issue.changeStatus(sess, doer, repo, isClosed); err != nil { |
| 480 | return err |
| 481 | } |
| 482 | |
| 483 | if err = sess.Commit(); err != nil { |
| 484 | return errors.Newf("commit: %v", err) |
| 485 | } |
| 486 | |
| 487 | if issue.IsPull { |
| 488 | // Merge pull request calls issue.changeStatus so we need to handle separately. |
| 489 | issue.PullRequest.Issue = issue |
| 490 | apiPullRequest := &api.PullRequestPayload{ |
| 491 | Index: issue.Index, |
| 492 | PullRequest: issue.PullRequest.APIFormat(), |
| 493 | Repository: repo.APIFormatLegacy(nil), |
| 494 | Sender: doer.APIFormat(), |
| 495 | } |
| 496 | if isClosed { |
| 497 | apiPullRequest.Action = api.HOOK_ISSUE_CLOSED |
| 498 | } else { |
| 499 | apiPullRequest.Action = api.HOOK_ISSUE_REOPENED |
| 500 | } |
| 501 | err = PrepareWebhooks(repo, HookEventTypePullRequest, apiPullRequest) |
| 502 | } else { |
| 503 | apiIssues := &api.IssuesPayload{ |
| 504 | Index: issue.Index, |
| 505 | Issue: issue.APIFormat(), |
| 506 | Repository: repo.APIFormatLegacy(nil), |
| 507 | Sender: doer.APIFormat(), |
| 508 | } |
| 509 | if isClosed { |
| 510 | apiIssues.Action = api.HOOK_ISSUE_CLOSED |
| 511 | } else { |
| 512 | apiIssues.Action = api.HOOK_ISSUE_REOPENED |
| 513 | } |
| 514 | err = PrepareWebhooks(repo, HookEventTypeIssues, apiIssues) |
| 515 | } |
| 516 | if err != nil { |
| 517 | log.Error("PrepareWebhooks [is_pull: %v, is_closed: %v]: %v", issue.IsPull, isClosed, err) |
| 518 | } |
| 519 | |
| 520 | return nil |
| 521 | } |
| 522 | |
| 523 | func (issue *Issue) ChangeTitle(doer *User, title string) (err error) { |
| 524 | oldTitle := issue.Title |
no test coverage detected