50 lines
725 B
Go
50 lines
725 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
// External
|
||
|
"github.com/jmoiron/sqlx"
|
||
|
|
||
|
// Standard
|
||
|
"fmt"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type File struct {
|
||
|
ID int
|
||
|
UserID int `db:"user_id"`
|
||
|
Filename string
|
||
|
Size int64
|
||
|
MIME string
|
||
|
MD5 string
|
||
|
Uploaded time.Time
|
||
|
|
||
|
}
|
||
|
|
||
|
func (session Session) AddFile(file *File) (err error) {// {{{
|
||
|
file.UserID = session.UserID
|
||
|
|
||
|
var rows *sqlx.Rows
|
||
|
rows, err = db.Queryx(`
|
||
|
INSERT INTO file(user_id, filename, size, mime, md5)
|
||
|
VALUES($1, $2, $3, $4, $5)
|
||
|
RETURNING id
|
||
|
`,
|
||
|
file.UserID,
|
||
|
file.Filename,
|
||
|
file.Size,
|
||
|
file.MIME,
|
||
|
file.MD5,
|
||
|
)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
defer rows.Close()
|
||
|
|
||
|
rows.Next()
|
||
|
err = rows.Scan(&file.ID)
|
||
|
fmt.Printf("%#v\n", file)
|
||
|
return
|
||
|
}// }}}
|
||
|
|
||
|
// vim: foldmethod=marker
|