2023-09-22 19:22:36 +01:00
package model_classes
import (
"database/sql"
"errors"
// . "git.andr3h3nriqu3s.com/andr3/fyp/logic/utils"
)
type ModelClass struct {
Id string
ModelId string
Name string
}
func ListClasses ( db * sql . DB , model_id string ) ( cls [ ] ModelClass , err error ) {
rows , err := db . Query ( "select id, model_id, name from model_classes where model_id=$1" , model_id )
if err != nil {
return
}
defer rows . Close ( )
for rows . Next ( ) {
var model ModelClass
err = rows . Scan ( & model . Id , & model . ModelId , & model . Name )
if err != nil {
return
}
cls = append ( cls , model )
}
return
}
2023-09-26 20:15:28 +01:00
func ModelHasDataPoints ( db * sql . DB , model_id string ) ( result bool , err error ) {
result = false
rows , err := db . Query ( "select mdp.id from model_data_point as mdp join model_classes as mc on mc.id = mdp.class_id where mc.model_id = $1 limit 1;" , model_id )
if err != nil {
return
}
defer rows . Close ( )
return rows . Next ( ) , nil
}
2023-09-22 19:22:36 +01:00
var ClassAlreadyExists = errors . New ( "Class aready exists" )
func CreateClass ( db * sql . DB , model_id string , name string ) ( id string , err error ) {
id = ""
rows , err := db . Query ( "select id from model_classes where model_id=$1 and name=$2;" , model_id , name )
if err != nil {
return
}
defer rows . Close ( )
if rows . Next ( ) {
return id , ClassAlreadyExists
}
_ , err = db . Exec ( "insert into model_classes (model_id, name) values ($1, $2)" , model_id , name )
if err != nil {
return
}
rows , err = db . Query ( "select id from model_classes where model_id=$1 and name=$2;" , model_id , name )
if err != nil {
return
}
defer rows . Close ( )
if ! rows . Next ( ) {
return id , errors . New ( "Something wrong" )
}
if err = rows . Scan ( & id ) ; err != nil {
return
}
return
}