소스 검색

Add seed function for addresses and branches

master
Immanuel Onyeka 1 년 전
부모
커밋
14efd4937b
2개의 변경된 파일120개의 추가작업 그리고 6개의 파일을 삭제
  1. +1
    -0
      migrations/0_29092022_setup_tables.sql
  2. +119
    -6
      skouter.go

+ 1
- 0
migrations/0_29092022_setup_tables.sql 파일 보기

@@ -13,6 +13,7 @@ CREATE TABLE address (

CREATE TABLE branch (
id INT AUTO_INCREMENT,
name VARCHAR(40) NOT NULL,
type ENUM('NMLS', 'FSRA') NOT NULL,
letterhead BLOB(102400) NOT NULL DEFAULT 0,
num VARCHAR(40) NOT NULL,


+ 119
- 6
skouter.go 파일 보기

@@ -40,6 +40,16 @@ type Address struct {
Zip string `json:"zip"`
}

type Branch struct {
Id int `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
Letterhead []byte `json:"letterhead"`
Num string `json:"num"`
Phone string `json:"phone"`
Address Address `json:"address"`
}


type User struct {
Id int `json:"id"`
@@ -587,7 +597,6 @@ func getBorrower(db *sql.DB, id int) (Borrower, error) {

// Query Lender APIs and parse responses into MI structs
func fetchMi(db *sql.DB, estimate *Estimate, pos int) []MI {
var err error
var loan Loan = estimate.Loans[pos]

var ltv = func(l float32) string {
@@ -648,11 +657,32 @@ func fetchMi(db *sql.DB, estimate *Estimate, pos int) []MI {
"armType": "",
"userId": 44504,
})
/*
if err != nil {
log.Printf("Could not marshal NationalMI body: \n%v\n%v\n",
bytes.NewBuffer(body), err)
func queryAddress(db *sql.DB, id int) ( Address, error ) {
var address Address = Address{Id: id}
var err error

row := db.QueryRow(
`SELECT id, full_address, street, city, region, country, zip
FROM address WHERE id = ?`, id)

err = row.Scan(
&address.Id,
&address.Full,
&address.Street,
&address.City,
&address.Region,
&address.Country,
&address.Zip,
)
return address, err
}
}
*/

req, err := http.NewRequest("POST",
"https://rate-gps.nationalmi.com/rates/productRateQuote",
@@ -675,6 +705,8 @@ func fetchMi(db *sql.DB, estimate *Estimate, pos int) []MI {
// estimate.Loans[pos].Mi = res
// Parse res into result here
}
log.Println(err)

return result
}
@@ -792,7 +824,7 @@ func insertAddress(db *sql.DB, address Address) (int, error){

query = `INSERT INTO address
(
full,
full_address,
street,
city,
region,
@@ -817,6 +849,40 @@ func insertAddress(db *sql.DB, address Address) (int, error){
return id, err
}

// Inserts an address and returns it's ID along with any errors.
func insertBranch(db *sql.DB, branch Branch) (int, error){
var query string
var row *sql.Row
var err error
var id int // Inserted user's id

query = `INSERT INTO branch
(
name,
type,
letterhead,
num,
phone,
address
)
VALUES (?, ?, ?, ?, ?, ?)
RETURNING id
`
row = db.QueryRow(query,
branch.Name,
branch.Type,
branch.Letterhead,
branch.Num,
branch.Phone,
branch.Address.Id,
)

err = row.Scan(&id)
return id, err
}

func queryAddress(db *sql.DB, id int) ( Address, error ) {
var address Address = Address{Id: id}
var err error
@@ -838,6 +904,27 @@ func queryAddress(db *sql.DB, id int) ( Address, error ) {
return address, err
}

func queryBranch(db *sql.DB, id int) ( Branch, error ) {
var branch Branch = Branch{Id: id}
var err error

row := db.QueryRow(
`SELECT id, name, type, letterhead, num, phone, address
FROM branch WHERE id = ?`, id)

err = row.Scan(
&branch.Id,
&branch.Name,
&branch.Type,
&branch.Letterhead,
&branch.Num,
&branch.Phone,
&branch.Address.Id,
)
return branch, err
}

func queryUsers(db *sql.DB, id int) ( []User, error ) {
var users []User
var query string
@@ -2145,13 +2232,39 @@ func dbSeed() {
panic(err)
// maybe os.Exit(1) instead
}
addresses := make([]Address, 10)
for i, a := range addresses {
a.Street = gofakeit.Street()
a.City = gofakeit.City()
a.Region = gofakeit.State()
a.Country = "Canada"
a.Full = fmt.Sprintf("%s, %s %s", a.Street, a.City, a.Region)
id, err := insertAddress(db, a)
if err != nil {log.Println(err); break}
addresses[i].Id = id
}
branches := make([]Branch, 3)
for i := range branches {
branches[i].Name = gofakeit.Street()
branches[i].Type = "NMLS"
branches[i].Letterhead = gofakeit.ImagePng(400, 200)
branches[i].Num = gofakeit.HexUint8()
branches[i].Phone = gofakeit.Phone()
branches[i].Address.Id = gofakeit.Number(1, 5)
id, err := insertBranch(db, branches[i])
if err != nil {log.Println(err); break}
branches[i].Address.Id = id
}
}

func dev(args []string) {
os.Setenv("DBName", "skouter_dev")
os.Setenv("DBUser", "tester")
os.Setenv("DBPass", "test123")
if len(args) == 0 {
os.Setenv("DBName", "skouter_dev")
os.Setenv("DBUser", "tester")
os.Setenv("DBPass", "test123")
serve()
return
}


불러오는 중...
취소
저장