mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
Heartbeat Insertions.
Restructuring.
This commit is contained in:
@@ -8,25 +8,23 @@ import (
|
||||
"github.com/n1try/wakapi/models"
|
||||
)
|
||||
|
||||
const (
|
||||
TableName = "heartbeat"
|
||||
)
|
||||
const TableHeartbeat = "heartbeat"
|
||||
|
||||
type HeartbeatService struct {
|
||||
Db *sql.DB
|
||||
}
|
||||
|
||||
func (srv *HeartbeatService) InsertMulti(heartbeats []models.Heartbeat) error {
|
||||
func (srv *HeartbeatService) InsertBatch(heartbeats []models.Heartbeat, user *models.User) error {
|
||||
qTpl := "INSERT INTO %+s (user, time, entity, type, category, is_write, project, branch, language) VALUES %+s;"
|
||||
qFill := ""
|
||||
vals := []interface{}{}
|
||||
|
||||
for _, h := range heartbeats {
|
||||
qFill = "(?, ?, ?, ?, ?, ?, ?, ?, ?),"
|
||||
vals = append(vals, h.User, h.Time.String(), h.Entity, h.Type, h.Category, h.IsWrite, h.Project, h.Branch, h.Language)
|
||||
vals = append(vals, user.UserId, h.Time.String(), h.Entity, h.Type, h.Category, h.IsWrite, h.Project, h.Branch, h.Language)
|
||||
}
|
||||
|
||||
q := fmt.Sprintf(qTpl, TableName, qFill[0:len(qFill)-1])
|
||||
q := fmt.Sprintf(qTpl, TableHeartbeat, qFill[0:len(qFill)-1])
|
||||
stmt, _ := srv.Db.Prepare(q)
|
||||
result, err := stmt.Exec(vals...)
|
||||
if err != nil {
|
||||
|
||||
34
services/user.go
Normal file
34
services/user.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"github.com/n1try/wakapi/models"
|
||||
)
|
||||
|
||||
const TableUser = "user"
|
||||
|
||||
type UserService struct {
|
||||
Db *sql.DB
|
||||
}
|
||||
|
||||
func (srv *UserService) GetUserById(userId string) (models.User, error) {
|
||||
q := fmt.Sprintf("SELECT user_id, api_key FROM %+s WHERE user_id = ?;", TableUser)
|
||||
u := models.User{}
|
||||
err := srv.Db.QueryRow(q, userId).Scan(&u.UserId, &u.ApiKey)
|
||||
if err != nil {
|
||||
return u, err
|
||||
}
|
||||
return u, nil
|
||||
}
|
||||
|
||||
func (srv *UserService) GetUserByKey(key string) (models.User, error) {
|
||||
q := fmt.Sprintf("SELECT user_id, api_key FROM %+s WHERE api_key = ?;", TableUser)
|
||||
var u models.User
|
||||
err := srv.Db.QueryRow(q, key).Scan(&u.UserId, &u.ApiKey)
|
||||
if err != nil {
|
||||
return u, err
|
||||
}
|
||||
return u, nil
|
||||
}
|
||||
Reference in New Issue
Block a user