123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package api
- import (
- "../settings"
- "encoding/json"
- "fmt"
- "net/http"
- "strconv"
- "strings"
- )
- var group []Group
- func GroupRoute(w http.ResponseWriter, r *http.Request) {
-
- showAPIRequest(r)
- w.Header().Set("Content-Type", "application/json")
- if r.Method == "POST" {
- CreateGroup(w, r)
- return
- }
-
- if r.Method == "UPDATE" || r.Method == "PATCH" {
- UpdateGroup(w, r)
- return
- }
-
- path := replacePath(r.URL.Path, "/api/group/")
- if path == "" && r.Method=="GET"{
- GetGroup(w, r)
- return
- }
- if strings.Contains(path, "specialty") && r.Method=="GET"{
- GetGroupBySpecialty(w, r)
- return
- }
-
- num, err := strconv.Atoi(path)
- if err != nil {
- json.NewEncoder(w).Encode(struct{ Error string }{Error: "strconv error"})
- fmt.Println(err)
- return
- }
- settings.DB.Find(&group)
- if num < 0 || num > len(group)+1 {
- json.NewEncoder(w).Encode(struct{ Error string }{Error: "strconv error"})
- fmt.Println(err)
- return
- }
- json.NewEncoder(w).Encode(struct{ Error string }{Error: "This method is not supported"})
- }
- func UpdateGroup(w http.ResponseWriter, r *http.Request) {
- var group Group
- var groupToUpdate Group
- err := json.NewDecoder(r.Body).Decode(&group)
- if err != nil {
- showError(r, err)
- json.NewEncoder(w).Encode(struct{ Error string }{Error: "error update Group"})
- return
- }
- settings.DB.First(&groupToUpdate, group.ID)
- settings.DB.Model(&groupToUpdate).Updates(group)
- json.NewEncoder(w).Encode(struct{ Result string }{Result: "updated Group"})
- return
- }
- func CreateGroup(w http.ResponseWriter, r *http.Request) {
- var newGrop Group
- err := json.NewDecoder(r.Body).Decode(&newGrop)
- if err != nil {
- json.NewEncoder(w).Encode(struct{ Error string }{Error: "error add new Group"})
- fmt.Println(err)
- return
- }
- settings.DB.Create(&newGrop)
- json.NewEncoder(w).Encode(struct{ Result string }{Result: "added new newGrop"})
- return
- }
- func GetGroupBySpecialty(w http.ResponseWriter, r *http.Request,) {
- showAPIRequest(r)
- w.Header().Set("Content-Type", "application/json")
- path := replacePath(r.URL.Path, "/api/group/specialty/")
- var output []Group
- num, err := strconv.Atoi(path)
- if err != nil || num < 0 {
- json.NewEncoder(w).Encode(struct{ Error string }{Error: "strconv error"})
- showError(r, err)
- return
- }
- settings.DB.Where("id_specialty = ?", num).Find(&output)
- json.NewEncoder(w).Encode(output)
- return
- }
- func GetGroup(w http.ResponseWriter, r *http.Request) {
- showAPIRequest(r)
- w.Header().Set("Content-Type", "application/json")
- if r.Method == "GET" {
- var group []Group
- settings.DB.Find(&group)
- json.NewEncoder(w).Encode(group)
- }
- return
- }
- // func InArchive(w http.ResponseWriter, r *http.Request, num int){
- // var group Group
- // var specialty Specialty
- // var durationofsudy Durationofsudy
- // var studyplan Studypaln
- // settings.DB.Where("groupnumber = ?", num).First(&group)
- // settings.DB.Where("id = ?", group.IDSpecialty).First(&specialty)
- // settings.DB.Where("id_duration = ?", specialty.IDDuration).First(&durationofsudy)
- // settings.DB.Where("id_group = ?", group.ID).First(&studyplan)
-
-
- // if group.Year > durationofsudy.Yearsquantity {
- // studyplan.IsArchive = true
- // }
- // return
- // }
|