diff --git a/pkg/api/core/group/interface.go b/pkg/api/core/group/interface.go index fc807081..b40fe5e7 100644 --- a/pkg/api/core/group/interface.go +++ b/pkg/api/core/group/interface.go @@ -49,7 +49,15 @@ type AdminResult struct { } type ResultOne struct { - Group Group `json:"group"` + ID uint `json:"id"` + Agree *bool `json:"agree"` + Question string `json:"question"` + Org string `json:"org"` + Status uint `json:"status"` + Bandwidth string `json:"bandwidth"` + Contract string `json:"contract"` + Student *bool `json:"student"` + Open *bool `json:"open"` } type ResultAll struct { diff --git a/pkg/api/core/group/network/interface.go b/pkg/api/core/group/network/interface.go index a9428828..e247c1a6 100644 --- a/pkg/api/core/group/network/interface.go +++ b/pkg/api/core/group/network/interface.go @@ -13,7 +13,7 @@ const ( ID = 0 GID = 1 Org = 2 - Type = 3 + Open = 3 UpdateName = 100 UpdateDate = 102 UpdateRoute = 103 diff --git a/pkg/api/core/group/v0/group.go b/pkg/api/core/group/v0/group.go index 52898c69..42ab1fa4 100644 --- a/pkg/api/core/group/v0/group.go +++ b/pkg/api/core/group/v0/group.go @@ -146,7 +146,28 @@ func Get(c *gin.Context) { return } - c.JSON(http.StatusOK, group.ResultOne{Group: resultGroup.Group[0]}) + resultNetwork := dbNetwork.Get(network.Open, &network.Network{GroupID: result.Group.ID}) + if resultNetwork.Err != nil { + c.JSON(http.StatusInternalServerError, common.Error{Error: result.Err.Error()}) + return + } + + open := false + if len(resultNetwork.Network) > 0 { + open = true + } + + c.JSON(http.StatusOK, group.ResultOne{ + ID: resultGroup.Group[0].ID, + Agree: resultGroup.Group[0].Agree, + Question: resultGroup.Group[0].Question, + Org: resultGroup.Group[0].Org, + Status: resultGroup.Group[0].Status, + Bandwidth: resultGroup.Group[0].Bandwidth, + Contract: resultGroup.Group[0].Contract, + Student: resultGroup.Group[0].Student, + Open: &open, + }) } func GetAll(c *gin.Context) { diff --git a/pkg/api/store/group/network/v0/network.go b/pkg/api/store/group/network/v0/network.go index 3864fe39..eacedcf0 100644 --- a/pkg/api/store/group/network/v0/network.go +++ b/pkg/api/store/group/network/v0/network.go @@ -2,7 +2,7 @@ package v0 import ( "fmt" - network "github.com/homenoc/dsbd-backend/pkg/api/core/group/network" + "github.com/homenoc/dsbd-backend/pkg/api/core/group/network" "github.com/homenoc/dsbd-backend/pkg/api/store" "github.com/jinzhu/gorm" "log" @@ -85,6 +85,9 @@ func Get(base int, data *network.Network) network.ResultDatabase { } else if base == network.GID { err = db.Preload("IP").Preload("Connection").Preload("JPNICAdmin").Preload("JPNICTech"). Where("group_id = ?", data.GroupID).Find(&networkStruct).Error + } else if base == network.Open { + err = db.Preload("IP", "open = 1").Preload("Connection", "open = 1").Preload("JPNICAdmin").Preload("JPNICTech"). + Where("group_id = ? AND open = ?", data.GroupID, true).Find(&networkStruct).Error } else { log.Println("base select error") return network.ResultDatabase{Err: fmt.Errorf("(%s)error: base select\n", time.Now())}