adding position and trade endpoints

This commit is contained in:
zipfriis
2026-03-25 17:09:31 +01:00
parent 52d99c7012
commit b9f462f5be
5 changed files with 43 additions and 1 deletions

View File

@@ -30,6 +30,7 @@ func InitDB(db *sql.DB) {
CREATE TABLE IF NOT EXISTS position (
id INTEGER PRIMARY KEY AUTOINCREMENT,
company_id INTEGER NOT NULL,
currency_id INTEGER NOT NULL,
shares INTEGER NOT NULL,
weight REAL NOT NULL,
CostBases REAL NOT NULL,

View File

@@ -30,6 +30,29 @@ func GetTrades(db *sql.DB) ([]model.Trade, error) {
return trades, nil
}
func GetPositions(db *sql.DB) ([]model.Position, error) {
rows, err := db.Query("SELECT company_id, shares, weight, CostBases, currency_id")
if err != nil {
return nil, err
}
defer rows.Close()
var positions []model.Position
for rows.Next() {
var t model.Position
err := rows.Scan(&t.Company.ID, &t.Shares, &t.Weight, &t.CostBasis, t.Currency)
if err != nil {
return nil, err
}
positions = append(positions, t)
}
if err = rows.Err(); err != nil {
return nil, err
}
return positions, nil
}
func InsertTrade(db *sql.DB, trade model.Trade) error {
_, err := db.Exec(
"INSERT INTO trades (company_id, currency_id, shares, product, type, price, traded_at) VALUES (?, ?, ?, ?, ?, ?, ?)",