basic internal structure
This commit is contained in:
54
internal/shell/company.go
Normal file
54
internal/shell/company.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package shell
|
||||
|
||||
import (
|
||||
"Portifolio/internal/model"
|
||||
"Portifolio/internal/service"
|
||||
"bufio"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
func AddCompany(scanner *bufio.Scanner, db *sql.DB) {
|
||||
input := model.CompanyInput{}
|
||||
|
||||
fmt.Print(" Name: ")
|
||||
scanner.Scan()
|
||||
input.Name = strings.TrimSpace(scanner.Text())
|
||||
|
||||
fmt.Print(" Shares outstanding: ")
|
||||
scanner.Scan()
|
||||
shares, err := strconv.Atoi(strings.TrimSpace(scanner.Text()))
|
||||
if err != nil {
|
||||
fmt.Println(" Invalid number for shares.")
|
||||
return
|
||||
}
|
||||
input.SharesOutstanding = shares
|
||||
|
||||
fmt.Print(" Price: ")
|
||||
scanner.Scan()
|
||||
price, err := strconv.ParseFloat(strings.TrimSpace(scanner.Text()), 64)
|
||||
if err != nil {
|
||||
fmt.Println(" Invalid number for price.")
|
||||
return
|
||||
}
|
||||
input.Price = price
|
||||
|
||||
fmt.Print(" Currency ID: ")
|
||||
scanner.Scan()
|
||||
cid, err := strconv.Atoi(strings.TrimSpace(scanner.Text()))
|
||||
if err != nil {
|
||||
fmt.Println(" Invalid currency ID.")
|
||||
return
|
||||
}
|
||||
input.CurrencyID = cid
|
||||
|
||||
if err := service.AddCompany(input, db); err != nil {
|
||||
fmt.Println(" Error:", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf(" ✓ Company '%s' added.\n", input.Name)
|
||||
}
|
||||
Reference in New Issue
Block a user