github.com/Bio-core/jtree@v0.0.0-20190705165106-1d7a7e7d6272/repos/experiment_repo.go (about) 1 package repos 2 3 import ( 4 "fmt" 5 "log" 6 7 database "github.com/Bio-core/jtree/database" 8 "github.com/Bio-core/jtree/models" 9 ) 10 11 //InsertExperiment allows users to add generic objects to a collection in the database 12 func InsertExperiment(experiment *models.Experiment) bool { 13 stmt, err := database.DBUpdate.Prepare("INSERT INTO `experiments` (`experiment_id`,`study_id`,`panel_assay_screened`,`test_date`,`chip_cartridge_barcode`,`complete_date`,`pcr`,`sample_id`,`project_name`,`priority`,`opened_date`,`project_id`,`has_project_files`,`procedure_order_datetime`)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?);") 14 15 if err != nil { 16 log.Fatal(err) 17 } 18 _, err = stmt.Exec( 19 experiment.ExperimentID, 20 experiment.StudyID, 21 experiment.PanelAssayScreened, 22 experiment.TestDate.Format(shortForm), 23 experiment.ChipCartridgeBarcode, 24 experiment.CompleteDate.Format(shortForm), 25 experiment.Pcr, 26 experiment.SampleID, 27 experiment.ProjectName, 28 experiment.Priority, 29 experiment.OpenedDate.Format(shortForm), 30 experiment.ProjectID, 31 experiment.HasProjectFiles, 32 experiment.ProcedureOrderDatetime.Format(shortForm)) 33 stmt.Close() 34 if err != nil { 35 fmt.Println(err) 36 return false 37 } 38 return true 39 } 40 41 //GetExperimentByID gets all and results a list of samples 42 func GetExperimentByID(ID string) *models.Experiment { 43 experiments := []*models.Experiment{} 44 query := models.Query{} 45 query.SelectedFields = make([]string, 0) 46 query.SelectedFields = append(query.SelectedFields, "*") 47 query.SelectedTables = make([]string, 0) 48 query.SelectedTables = append(query.SelectedTables, "experiments") 49 query.SelectedCondition = make([][]string, 0) 50 //query.SelectedCondition = append(query.SelectedCondition, make([]string, 0)) 51 conditions := []string{"AND", "experiments.experiment_id", "Equal to", ID} 52 query.SelectedCondition = append(query.SelectedCondition, conditions) 53 54 queryString := database.BuildQuery(query) 55 err := database.DBSelect.Select(&experiments, queryString) 56 if err != nil { 57 fmt.Println(err) 58 return nil 59 } 60 if len(experiments) == 0 { 61 return nil 62 } 63 return experiments[0] 64 } 65 66 //UpdateExperiment allows users to add generic objects to a collection in the database 67 func UpdateExperiment(experiment *models.Experiment) bool { 68 stmt, err := database.DBUpdate.Prepare("UPDATE `experiments` SET `experiment_id` = ?,`study_id` = ?,`panel_assay_screened` = ?,`test_date` = ?,`chip_cartridge_barcode` = ?,`complete_date` = ?,`pcr` = ?,`sample_id` = ?,`project_name` = ?,`priority` = ?,`opened_date` = ?,`project_id` = ?,`has_project_files` = ?,`procedure_order_datetime` = ? WHERE `experiment_id` = ?;") 69 70 if err != nil { 71 log.Fatal(err) 72 } 73 _, err = stmt.Exec( 74 experiment.ExperimentID, 75 experiment.StudyID, 76 experiment.PanelAssayScreened, 77 experiment.TestDate.Format(shortForm), 78 experiment.ChipCartridgeBarcode, 79 experiment.CompleteDate.Format(shortForm), 80 experiment.Pcr, 81 experiment.SampleID, 82 experiment.ProjectName, 83 experiment.Priority, 84 experiment.OpenedDate.Format(shortForm), 85 experiment.ProjectID, 86 experiment.HasProjectFiles, 87 experiment.ProcedureOrderDatetime.Format(shortForm), 88 experiment.ExperimentID) 89 stmt.Close() 90 if err != nil { 91 fmt.Println(err) 92 return false 93 } 94 return true 95 }