summaryrefslogtreecommitdiffstats
path: root/models/issue.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2015-12-21 04:24:11 -0800
committerUnknwon <u@gogs.io>2015-12-21 04:24:11 -0800
commita49af93fafe824cdd375318d15de420b3ed61e79 (patch)
tree1508c0bbd9f9caf2c3af8163e4e9abe326093558 /models/issue.go
parentc62a6b7a1238524225ec9c214dc5eac7da017663 (diff)
downloadgitea-a49af93fafe824cdd375318d15de420b3ed61e79.tar.gz
gitea-a49af93fafe824cdd375318d15de420b3ed61e79.zip
#1692 APIs: Users Followers
- User profile un/follow - List user's followers/following
Diffstat (limited to 'models/issue.go')
-rw-r--r--models/issue.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/models/issue.go b/models/issue.go
index 2b2e8bd618..22ea72512c 100644
--- a/models/issue.go
+++ b/models/issue.go
@@ -665,6 +665,47 @@ func GetIssueUserPairsByMode(uid, rid int64, isClosed bool, page, filterMode int
return ius, err
}
+func UpdateMentions(userNames []string, issueId int64) error {
+ for i := range userNames {
+ userNames[i] = strings.ToLower(userNames[i])
+ }
+ users := make([]*User, 0, len(userNames))
+
+ if err := x.Where("lower_name IN (?)", strings.Join(userNames, "\",\"")).OrderBy("lower_name ASC").Find(&users); err != nil {
+ return err
+ }
+
+ ids := make([]int64, 0, len(userNames))
+ for _, user := range users {
+ ids = append(ids, user.Id)
+ if !user.IsOrganization() {
+ continue
+ }
+
+ if user.NumMembers == 0 {
+ continue
+ }
+
+ tempIds := make([]int64, 0, user.NumMembers)
+ orgUsers, err := GetOrgUsersByOrgId(user.Id)
+ if err != nil {
+ return err
+ }
+
+ for _, orgUser := range orgUsers {
+ tempIds = append(tempIds, orgUser.ID)
+ }
+
+ ids = append(ids, tempIds...)
+ }
+
+ if err := UpdateIssueUsersByMentions(ids, issueId); err != nil {
+ return err
+ }
+
+ return nil
+}
+
// IssueStats represents issue statistic information.
type IssueStats struct {
OpenCount, ClosedCount int64