2016-01-13 19:25:25 +00:00
package fic
2016-01-07 17:43:02 +00:00
import ( )
type Member struct {
2016-01-13 00:20:21 +00:00
Id int64 ` json:"id" `
Firstname string ` json:"firstname" `
Lastname string ` json:"lastname" `
Nickname string ` json:"nickname" `
Company string ` json:"company" `
2016-01-07 17:43:02 +00:00
}
2017-01-20 19:52:31 +00:00
func GetMember ( cnt int ) ( Team , error ) {
var t Team
2018-01-21 13:07:44 +00:00
if err := DBQueryRow ( "SELECT T.id_team, T.name, T.color FROM team_members M RIGHT OUTER JOIN teams T ON T.id_team = M.id_team LIMIT ?, 1" , cnt - 1 ) . Scan ( & t . Id , & t . Name , & t . Color ) ; err != nil {
2017-01-20 19:52:31 +00:00
return t , err
}
return t , nil
}
2016-01-07 17:43:02 +00:00
func ( t Team ) GetMembers ( ) ( [ ] Member , error ) {
2016-01-13 00:20:21 +00:00
if rows , err := DBQuery ( "SELECT id_member, firstname, lastname, nickname, company FROM team_members WHERE id_team = ?" , t . Id ) ; err != nil {
2016-01-07 17:43:02 +00:00
return nil , err
} else {
defer rows . Close ( )
var members = make ( [ ] Member , 0 )
for rows . Next ( ) {
var m Member
2016-01-13 00:20:21 +00:00
if err := rows . Scan ( & m . Id , & m . Firstname , & m . Lastname , & m . Nickname , & m . Company ) ; err != nil {
2016-01-07 17:43:02 +00:00
return nil , err
}
members = append ( members , m )
}
if err := rows . Err ( ) ; err != nil {
return nil , err
}
return members , nil
}
}
func ( t Team ) AddMember ( firstname string , lastname string , nickname string , company string ) ( Member , error ) {
2016-01-13 00:20:21 +00:00
if res , err := DBExec ( "INSERT INTO team_members (id_team, firstname, lastname, nickname, company) VALUES (?, ?, ?, ?, ?)" , t . Id , firstname , lastname , nickname , company ) ; err != nil {
2016-01-07 17:43:02 +00:00
return Member { } , err
} else if mid , err := res . LastInsertId ( ) ; err != nil {
return Member { } , err
} else {
return Member { mid , firstname , lastname , nickname , company } , nil
}
}
func ( t Team ) GainMember ( m Member ) error {
2017-12-21 21:18:18 +00:00
if m . Id == 0 {
if res , err := DBExec ( "INSERT INTO team_members (id_team, firstname, lastname, nickname, company) VALUES (?, ?, ?, ?, ?)" , t . Id , m . Firstname , m . Lastname , m . Nickname , m . Company ) ; err != nil {
return err
} else if _ , err := res . LastInsertId ( ) ; err != nil {
return err
} else {
return nil
}
} else if res , err := DBExec ( "UPDATE team_members SET id_team = ? WHERE id_member = ?" , t . Id , m . Id ) ; err != nil {
2016-01-07 17:43:02 +00:00
return err
} else if _ , err := res . RowsAffected ( ) ; err != nil {
return err
} else {
return nil
}
}
func ( m Member ) Update ( ) ( int64 , error ) {
2016-01-13 00:20:21 +00:00
if res , err := DBExec ( "UPDATE team_members SET firstname = ?, lastname = ?, nickname = ?, company = ? WHERE id_member = ?" , m . Firstname , m . Lastname , m . Nickname , m . Company , m . Id ) ; err != nil {
2016-01-07 17:43:02 +00:00
return 0 , err
} else if nb , err := res . RowsAffected ( ) ; err != nil {
return 0 , err
} else {
return nb , err
}
}
func ( m Member ) Delete ( ) ( int64 , error ) {
2016-01-13 00:20:21 +00:00
if res , err := DBExec ( "DELETE FROM team_members WHERE id_member = ?" , m . Id ) ; err != nil {
2016-01-07 17:43:02 +00:00
return 0 , err
} else if nb , err := res . RowsAffected ( ) ; err != nil {
return 0 , err
} else {
return nb , err
}
}
2017-01-28 18:36:28 +00:00
func ( t Team ) ClearMembers ( ) ( int64 , error ) {
if res , err := DBExec ( "DELETE FROM team_members WHERE id_team = ?" , t . Id ) ; err != nil {
return 0 , err
} else if nb , err := res . RowsAffected ( ) ; err != nil {
return 0 , err
} else {
return nb , err
}
}