diff --git a/components/estimates.vue b/components/estimates.vue index 168581d..03d0687 100644 --- a/components/estimates.vue +++ b/components/estimates.vue @@ -57,7 +57,7 @@ ${{(template.estimate.price / 100).toLocaleString()}} - + @@ -103,9 +103,15 @@ ${{(estimate.price / 100).toLocaleString()}}

Are you sure you want to delete this estimate?

- +
+ +

Are you sure you want to delete this template?

+ +
+ + @@ -124,7 +130,8 @@ let templates = ref([]) let estimate = ref() let template = ref() let dlink = ref("") -let deleting = ref() +let deleting = ref(false) +let deletingt = ref(false) function newFee(fee, isDebit) { if (!isDebit) { @@ -188,7 +195,7 @@ function getEstimates() { } function getTemplates() { - fetch(`/api/estimate/templates`, + fetch(`/api/templates`, {method: 'GET', headers: { "Accept": "application/json", @@ -201,12 +208,11 @@ function getTemplates() { }).then (result => { if (!result || !result.length) return // Exit if token is invalid or no fees are saved templates.value = result - console.log(result) }) } function saveTemplate(e) { - fetch(`/api/estimate/templates`, + fetch(`/api/templates`, {method: 'POST', body: JSON.stringify(e), headers: { @@ -235,8 +241,8 @@ function del(e) { }) } -function remove(t) { - fetch(`/api/estimate/template/remove`, +function delt(t) { + fetch(`/api/templates`, {method: 'DELETE', body: JSON.stringify(t), headers: { @@ -245,9 +251,9 @@ function remove(t) { }, }).then(response => { if (response.ok) { - estimates.value = estimates.value.filter(e => e.id != estimate.value.id) - estimate.value = null - deleting.value = false + templates.value = templates.value.filter(t => t.id != template.value.id) + template.value = null + deletingt.value = false } }) } diff --git a/skouter.go b/skouter.go index d45f7b3..a364f90 100644 --- a/skouter.go +++ b/skouter.go @@ -593,6 +593,18 @@ func deleteEstimate(w http.ResponseWriter, db *sql.DB, r *http.Request) { if err != nil { http.Error(w, err.Error(), 500); return } } +func deleteET(w http.ResponseWriter, db *sql.DB, r *http.Request) { + var et ETemplate + var err error + + err = json.NewDecoder(r.Body).Decode(&et) + if err != nil { w.WriteHeader(422); return } + + claims, err := getClaims(r) + err = et.del(db, claims.Id) + if err != nil { http.Error(w, err.Error(), 500); return } +} + func getMi(db *sql.DB, loan int) (MI, error) { var mi MI @@ -2113,6 +2125,18 @@ func (estimate *Estimate) del(db *sql.DB, user int) (error) { return nil } +func (et *ETemplate) del(db *sql.DB, user int) (error) { + var query string + var err error + + query = `DELETE FROM estimate_template WHERE id = ? AND user_id = ?` + + _, err = db.Exec(query, et.Id, user) + if err != nil { return err } + + return nil +} + func (eTemplate *ETemplate) insert(db *sql.DB) (error) { var query string var row *sql.Row @@ -2554,14 +2578,18 @@ func api(w http.ResponseWriter, r *http.Request) { r.Method == http.MethodPost && guard(r, 1): summarize(w, db, r) - case match(p, "/api/estimate/templates", &args) && + case match(p, "/api/templates", &args) && r.Method == http.MethodGet && guard(r, 1): getETemplates(w, db, r) - case match(p, "/api/estimate/templates", &args) && + case match(p, "/api/templates", &args) && r.Method == http.MethodPost && guard(r, 1): createETemplate(w, db, r) + case match(p, "/api/templates", &args) && + r.Method == http.MethodDelete && + guard(r, 1): + deleteET(w, db, r) case match(p, "/api/pdf", &args) && r.Method == http.MethodPost && guard(r, 1):