Advertisement
Uhuuuyy

handlerMatkul.go

May 23rd, 2023
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 2.50 KB | Source Code | 0 0
  1. package handler
  2.  
  3. import (
  4.     "encoding/json"
  5.     "io/ioutil"
  6.     "nama_npm_pert4/model"
  7.     "net/http"
  8. )
  9.  
  10. func HandlerMatkulGet(w http.ResponseWriter, r *http.Request) {
  11.     var data interface{}
  12.     var err error
  13.     kd_mk := r.URL.Query()["kd_mk"]
  14.     if len(kd_mk) != 0 {
  15.         data, err = model.GetMatkul(db, kd_mk[0])
  16.     } else {
  17.         data, err = model.GetAllMatkul(db)
  18.     }
  19.     if err != nil {
  20.         http.Error(w, err.Error(), http.StatusInternalServerError)
  21.     }
  22.     jsonData, _ := json.Marshal(data)
  23.     w.Write(jsonData)
  24. }
  25.  
  26. func HandlerMatkulPost(w http.ResponseWriter, r *http.Request) {
  27.     defer r.Body.Close()
  28.     body, err := ioutil.ReadAll(r.Body)
  29.     if err != nil {
  30.         http.Error(w, err.Error(), http.StatusInternalServerError)
  31.         return
  32.     }
  33.     var data model.Matkul
  34.     if err = json.Unmarshal(body, &data); err != nil {
  35.         http.Error(w, err.Error(), http.StatusInternalServerError)
  36.         return
  37.     }
  38.     if err = data.Insert(db); err != nil {
  39.         http.Error(w, err.Error(), http.StatusInternalServerError)
  40.         return
  41.     }
  42.     jsonData, err := json.Marshal(data)
  43.     if err != nil {
  44.         http.Error(w, err.Error(), http.StatusInternalServerError)
  45.     }
  46.     w.Write(jsonData)
  47. }
  48.  
  49. func HandlerMatkulDelete(w http.ResponseWriter, r *http.Request) {
  50.     kd_mk := r.URL.Query()["kd_mk"]
  51.     if len(kd_mk) != 0 {
  52.         data := model.Matkul{Kd_mk: kd_mk[0]}
  53.         if err := data.Delete(db); err != nil {
  54.             http.Error(w, "ID tidak ditemukan", http.StatusBadRequest)
  55.             return
  56.         }
  57.         w.Write([]byte("Data telah dihapus"))
  58.     } else {
  59.         http.Error(w, "ID tidak ditemukan", http.StatusInternalServerError)
  60.     }
  61. }
  62.  
  63. func HandlerMatkulPut(w http.ResponseWriter, r *http.Request) {
  64.     kd_mk := r.URL.Query()["kd_mk"]
  65.     if len(kd_mk) == 0 {
  66.         http.Error(w, "ID tidak ditemukan", http.StatusBadRequest)
  67.         return
  68.     }
  69.     defer r.Body.Close()
  70.     body, err := ioutil.ReadAll(r.Body)
  71.     if err != nil {
  72.         http.Error(w, err.Error(), http.StatusInternalServerError)
  73.         return
  74.     }
  75.     jsonmap := make(map[string]interface{})
  76.     err = json.Unmarshal(body, &jsonmap)
  77.     if err != nil {
  78.         http.Error(w, err.Error(), http.StatusInternalServerError)
  79.         return
  80.     }
  81.     data := model.Matkul{Kd_mk: kd_mk[0]}
  82.     err = data.Update(db, jsonmap)
  83.     if err != nil {
  84.         http.Error(w, err.Error(), http.StatusInternalServerError)
  85.         return
  86.     }
  87.     result, err := model.GetMatkul(db, kd_mk[0])
  88.     if err != nil {
  89.         http.Error(w, err.Error(), http.StatusInternalServerError)
  90.         return
  91.     }
  92.     jsonData, err := json.Marshal(result)
  93.     if err != nil {
  94.         http.Error(w, err.Error(), http.StatusInternalServerError)
  95.         return
  96.     }
  97.     w.Write(jsonData)
  98. }
  99.  
Tags: inter4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement