mirror of
https://github.com/ddworken/hishtory.git
synced 2025-03-29 00:57:12 +01:00
building, before doing the refactor to make device ID just another random ID
This commit is contained in:
parent
2a3887b9ed
commit
32e74eb3a1
@ -1,12 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/ddworken/hishtory/shared"
|
||||
)
|
||||
@ -25,10 +25,10 @@ func main() {
|
||||
export()
|
||||
case "init":
|
||||
shared.CheckFatalError(shared.Setup(0, os.Args))
|
||||
// TODO: Call ebootstrap here
|
||||
// TODO: Call ebootstrap here
|
||||
case "install":
|
||||
shared.CheckFatalError(shared.Install())
|
||||
// TODO: Call ebootstrap here
|
||||
// TODO: Call ebootstrap here
|
||||
case "enable":
|
||||
shared.CheckFatalError(shared.Enable())
|
||||
case "disable":
|
||||
@ -72,15 +72,14 @@ func saveHistoryEntry() {
|
||||
entry, err := shared.BuildHistoryEntry(os.Args)
|
||||
shared.CheckFatalError(err)
|
||||
|
||||
// Persist it locally
|
||||
// Persist it locally
|
||||
db, err := shared.OpenLocalSqliteDb()
|
||||
shared.CheckFatalError(err)
|
||||
err = db.Create(entry)
|
||||
shared.CheckFatalError(err)
|
||||
result := db.Create(entry)
|
||||
shared.CheckFatalError(result.Error)
|
||||
|
||||
// Persist it remotely
|
||||
// TODO: This is encrypting one to this device, this is wrong. We want to encrypt it to every device except this one.
|
||||
encEntry, err := shared.EncryptHistoryEntry(config.UserSecret ,config.DeviceId, *entry)
|
||||
encEntry, err := shared.EncryptHistoryEntry(config.UserSecret, *entry)
|
||||
shared.CheckFatalError(err)
|
||||
jsonValue, err := json.Marshal(encEntry)
|
||||
shared.CheckFatalError(err)
|
||||
@ -98,4 +97,4 @@ func export() {
|
||||
for _, entry := range data {
|
||||
fmt.Println(entry)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -36,19 +36,19 @@ func apiESubmitHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
GLOBAL_DB.Where("user_id = ?", )
|
||||
GLOBAL_DB.Where("user_id = ?")
|
||||
for _, entry := range entries {
|
||||
tx := GLOBAL_DB.Where("user_id = ?", entry.UserId)
|
||||
var devices []*shared.Device;
|
||||
var devices []*shared.Device
|
||||
result := tx.Find(&devices)
|
||||
if result.Error != nil {
|
||||
panic(fmt.Errorf("DB query error: %v", result.Error))
|
||||
}
|
||||
if len(devices) == 0{
|
||||
if len(devices) == 0 {
|
||||
panic(fmt.Errorf("Found no devices associated with user_id=%s, can't save history entry!", entry.UserId))
|
||||
}
|
||||
for _, device := range devices {
|
||||
entry.DeviceId = device.DeviceId;
|
||||
entry.DeviceId = device.DeviceId
|
||||
GLOBAL_DB.Create(&entry)
|
||||
}
|
||||
}
|
||||
@ -56,7 +56,7 @@ func apiESubmitHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
func apiEQueryHandler(w http.ResponseWriter, r *http.Request) {
|
||||
deviceId := r.URL.Query().Get("device_id")
|
||||
// Increment the count
|
||||
// Increment the count
|
||||
GLOBAL_DB.Exec("UPDATE enc_history_entries SET read_count = read_count + 1 WHERE device_id = ?", deviceId)
|
||||
|
||||
// Then retrieve, to avoid a race condition
|
||||
|
@ -158,7 +158,7 @@ func DisplayResults(results []*HistoryEntry, displayHostname bool) {
|
||||
type ClientConfig struct {
|
||||
UserSecret string `json:"user_secret"`
|
||||
IsEnabled bool `json:"is_enabled"`
|
||||
DeviceId int `json:"device_id"`
|
||||
DeviceId int `json:"device_id"`
|
||||
}
|
||||
|
||||
func GetConfig() (ClientConfig, error) {
|
||||
|
@ -39,12 +39,12 @@ type EncHistoryEntry struct {
|
||||
DeviceId string `json:"device_id"`
|
||||
UserId string `json:"user_id"`
|
||||
Date time.Time `json:"time"`
|
||||
EncryptedId string `json:"id"`
|
||||
ReadCount int `json:"read_count"`
|
||||
EncryptedId string `json:"id"`
|
||||
ReadCount int `json:"read_count"`
|
||||
}
|
||||
|
||||
type Device struct {
|
||||
UserId string `json:"user_id"`
|
||||
UserId string `json:"user_id"`
|
||||
DeviceId string `json:"device_id"`
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ type Device struct {
|
||||
// }
|
||||
|
||||
const (
|
||||
HISHTORY_PATH = ".hishtory"
|
||||
HISHTORY_PATH = ".hishtory"
|
||||
DB_PATH = ".hishtory.db"
|
||||
KDF_USER_ID = "user_id"
|
||||
KDF_DEVICE_ID = "device_id"
|
||||
@ -145,8 +145,8 @@ func EncryptHistoryEntry(userSecret string, entry HistoryEntry) (EncHistoryEntry
|
||||
Nonce: nonce,
|
||||
UserId: UserId(userSecret),
|
||||
Date: time.Now(),
|
||||
EncryptedId: uuid.Must(uuid.NewRandom()).String(),
|
||||
ReadCount: 0,
|
||||
EncryptedId: uuid.Must(uuid.NewRandom()).String(),
|
||||
ReadCount: 0,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@ -182,15 +182,15 @@ func OpenLocalSqliteDb() (*gorm.DB, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create ~/.hishtory dir: %v", err)
|
||||
}
|
||||
db, err := gorm.Open(sqlite.Open(path.Join(homedir, HISHTORY_PATH, DB_PATH)), &gorm.Config{SkipDefaultTransaction: true,})
|
||||
db, err := gorm.Open(sqlite.Open(path.Join(homedir, HISHTORY_PATH, DB_PATH)), &gorm.Config{SkipDefaultTransaction: true})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to connect to the DB: %v", err)
|
||||
}
|
||||
tx, err := db.DB()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, err
|
||||
}
|
||||
err = tx.Ping()
|
||||
err = tx.Ping()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user