ソースを参照

Fix SQL field errors

master
コミット
52f3a9a7b7
3個のファイルの変更54行の追加25行の削除
  1. +2
    -0
      migrations/0_29092022_create_main_tables.sql
  2. +8
    -0
      migrations/seed.sql
  3. +44
    -25
      skouter.go

+ 2
- 0
migrations/0_29092022_create_main_tables.sql ファイルの表示

@@ -86,6 +86,8 @@ CREATE TABLE loan (
amount INT NOT NULL,
term INT, /* In years */
interest INT, /* Per year, precise to 2 decimals */
ltv INT DEFAULT 0,
dti INT DEFAULT 0,
hoi INT DEFAULT 0, /* Hazard insurance annual payments */
mi_name VARCHAR(50) NOT NULL,
/* Mortgage insurance title shown in menu */


+ 8
- 0
migrations/seed.sql ファイルの表示

@@ -219,6 +219,8 @@ INSERT INTO loan (
amount,
term,
interest,
ltv,
dti,
hoi,
mi_name,
mi_amount,
@@ -232,6 +234,8 @@ INSERT INTO loan (
30,
375,
10000,
0,
0,
"custom mi",
234000,
"National MI",
@@ -244,6 +248,8 @@ INSERT INTO loan (
30,
300,
10000,
0,
0,
"maybe MGIC",
234000,
"MGIC",
@@ -256,6 +262,8 @@ INSERT INTO loan (
10,
125,
15000,
0,
0,
"custom mi",
234000,
"another lender",


+ 44
- 25
skouter.go ファイルの表示

@@ -182,31 +182,40 @@ func getLoanType(

func getEstimate(db *sql.DB, id int) (Estimate, error) {
var estimate Estimate

var err error

query := `SELECT e.id, e.user_id, e.transaction,
e.price, e.property, e.occupancy, e.zip, e.pud,
b.id, b.credit_score, b.monthly_income, b.num
FROM estimate e
INNER JOIN borrower b ON e.borrower_id = b.id
WHERE e.id = ?
`
// Inner join should always be valid because a borrower is a required
// foreign key.
row := db.QueryRow(
"SELECT * FROM estimate "+
"WHERE id = ? " +
"INNER JOIN borrower ON estimate.borrower = borrower.id",
id)
row := db.QueryRow(query, id)
if err := row.Scan(
if err = row.Scan(
&estimate.Id,
&estimate.User,
&estimate.Borrower.Id,
&estimate.Transaction,
&estimate.Price,
&estimate.Property,
&estimate.Occupancy,
&estimate.Zip,
&estimate.Pud,
&estimate.Borrower.Id,
&estimate.Borrower.Credit,
&estimate.Borrower.Income,
&estimate.Borrower.Num,
)
err != nil {
return estimate, fmt.Errorf("Estimate scanning error: %v", err)
}

return estimate, nil
estimate.Loans, err = getLoans(db, estimate.Id)

return estimate, err
}

func getFees(db *sql.DB, loan int) ([]Fee, error) {
@@ -282,10 +291,6 @@ func getFeesTemp(db *sql.DB, user int) ([]FeeTemplate, error) {
fees = append(fees, fee)
}
est, err := getEstimate(db, 1)
fmt.Printf("the estimate: %v,\nthe error %v\n", est, err)
// getMi(db, getEstimate(db, 1), getBorrower(db, 1))

return fees, nil
}

@@ -293,11 +298,10 @@ func getLoans(db *sql.DB, estimate int) ([]Loan, error) {
var loans []Loan

query := `SELECT
loan.id, loan.amount, loan.term, loan.interest, loan.ltv, loan.dti,
loan.hoi, loan.mi_name, loan.mi_amount
loan_type.id, loan_type.user_id, loan_type.branch_id, loan_type.name
FROM loan INNER JOIN loan_type ON loan.type_id = loan_type(id)
WHERE loan.estimate_id = ?
l.id, l.amount, l.term, l.interest, l.ltv, l.dti, l.hoi, l.mi_name,
l.mi_amount, lt.id, lt.user_id, lt.branch_id, lt.name
FROM loan l INNER JOIN loan_type lt ON l.type_id = lt.id
WHERE l.estimate_id = ?
`
rows, err := db.Query(query, estimate)
@@ -332,10 +336,6 @@ func getLoans(db *sql.DB, estimate int) ([]Loan, error) {
loans = append(loans, loan)
}
est, err := getEstimate(db, 1)
fmt.Printf("the loan: %v,\nthe error %v\n", est, err)
// getMi(db, getEstimate(db, 1), getBorrower(db, 1))

return loans, nil
}

@@ -360,7 +360,7 @@ func getBorrower(db *sql.DB, id int) (Borrower, error) {
return borrower, nil
}

func getMi(db *sql.DB, estimate Estimate, borrower Borrower) {
func getMi(db *sql.DB, estimate *Estimate) {
// body := map[string]string{
// "zipCode": estimate.Zip,
// // "stateCode": "CA",
@@ -420,13 +420,13 @@ func getMi(db *sql.DB, estimate Estimate, borrower Borrower) {
"productCode": "BPM",
"renewalTypeCode": "CON",
"numberOfBorrowers": 1,
"borrowerCreditScore": strconv.Itoa(borrower.Credit),
"borrowerCreditScore": strconv.Itoa(estimate.Borrower.Credit),
"masterPolicy": nil,
"selfEmployedIndicator": false,
"armType": "",
"userId": 44504,
})
log.Println(bytes.NewBuffer(body))
log.Println("the bytes: %v", bytes.NewBuffer(body))

}

@@ -459,6 +459,7 @@ func route(w http.ResponseWriter, r *http.Request) {
func api(w http.ResponseWriter, r *http.Request) {
var args []string
// var response string

p := r.URL.Path
db, err := sql.Open("mysql",
fmt.Sprintf("%s:%s@tcp(127.0.0.1:3306)/skouter",
@@ -492,6 +493,24 @@ func api(w http.ResponseWriter, r *http.Request) {
} else {
json.NewEncoder(w).Encode(err)
}

case match(p, "/api/mi", &args):
var err error
est, err := getEstimate(db, 1)
if err != nil {
json.NewEncoder(w).Encode(err)
log.Println("error occured:", err)
break
}

getMi(db, &est)

// if err != nil {
// json.NewEncoder(w).Encode(err)
// break
// } else {
// json.NewEncoder(w).Encode(resp)
// }
}

}


読み込み中…
キャンセル
保存