Update org model
This commit is contained in:
		
							parent
							
								
									d31bbabcc7
								
							
						
					
					
						commit
						1c1c6b1190
					
				
							
								
								
									
										38
									
								
								db/org.go
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								db/org.go
									
									
									
									
									
								
							@ -5,29 +5,35 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Org struct {
 | 
			
		||||
	ID        uint64 `json:"id"`
 | 
			
		||||
	Login     string `json:"login"`
 | 
			
		||||
	Company   string `json:"company"`
 | 
			
		||||
	AvatarURL string `json:"avatar_url" db:"avatar_url"`
 | 
			
		||||
	ID        uint64    `json:"id"`
 | 
			
		||||
	Login     string    `json:"login"`
 | 
			
		||||
	Company   string    `json:"company"`
 | 
			
		||||
	AvatarURL string    `json:"avatar_url" db:"avatar_url"`
 | 
			
		||||
	CreatedAt time.Time `json:"created_at" db:"created_at"`
 | 
			
		||||
	UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const userOrgsQuery = `select o.* from members m join orgs o on o.login = m.org where user = ?`
 | 
			
		||||
const saveOrgQuery = `
 | 
			
		||||
insert into orgs (id, login, company, avatar_url, created_at, updated_at)
 | 
			
		||||
values (:id, :login, :company, :avatar_url, now(), now())
 | 
			
		||||
on duplicate key update
 | 
			
		||||
login = values(login),
 | 
			
		||||
company = values(company),
 | 
			
		||||
avatar_url = values(avatar_url),
 | 
			
		||||
updated_at=now()`
 | 
			
		||||
 | 
			
		||||
func (o *Org) Save() {
 | 
			
		||||
	defer measure("SaveOrg", time.Now())
 | 
			
		||||
	mustExecN(saveOrgQuery, o)
 | 
			
		||||
	mustExecN(`
 | 
			
		||||
		insert into orgs (id, login, company, avatar_url, created_at, updated_at)
 | 
			
		||||
		values (:id, :login, :company, :avatar_url, now(), now())
 | 
			
		||||
		on duplicate key update
 | 
			
		||||
			login = values(login),
 | 
			
		||||
			company = values(company),
 | 
			
		||||
			avatar_url = values(avatar_url),
 | 
			
		||||
			updated_at = now()
 | 
			
		||||
	`, o)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func UserOrgs(login string) (orgs []*Org) {
 | 
			
		||||
	defer measure("UserOrgs", time.Now())
 | 
			
		||||
	mustSelect(&orgs, userOrgsQuery, login)
 | 
			
		||||
	mustSelect(&orgs, `
 | 
			
		||||
		select o.*
 | 
			
		||||
		from org_members m
 | 
			
		||||
		join users u on u.id = m.user_id
 | 
			
		||||
		join orgs o on o.id = m.org_id
 | 
			
		||||
		where u.login = ?
 | 
			
		||||
	`, login)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user