github.com/Bio-core/jtree@v0.0.0-20190705165106-1d7a7e7d6272/cmd/jtree-metadata-server/models/experiment.go (about)

     1  package models
     2  
     3  // This file was generated by the swagger tool.
     4  // Editing this file might prove futile when you re-run the swagger generate command
     5  
     6  import (
     7  	"io/ioutil"
     8  	"log"
     9  	"path/filepath"
    10  
    11  	strfmt "github.com/go-openapi/strfmt"
    12  	yaml "gopkg.in/yaml.v2"
    13  
    14  	goerror "errors"
    15  
    16  	"github.com/go-openapi/errors"
    17  	"github.com/go-openapi/swag"
    18  )
    19  
    20  //Enums is the experiment enums
    21  var Enums *ExperimentEnum
    22  
    23  // Experiment experiment
    24  // swagger:model Experiment
    25  type Experiment struct {
    26  
    27  	// chip cartridge barcode
    28  	ChipCartridgeBarcode *string `json:"experiments.chip_cartridge_barcode,omitempty" db:"experiments.chip_cartridge_barcode"`
    29  
    30  	// complete date
    31  	CompleteDate *string `json:"experiments.complete_date,omitempty" db:"experiments.complete_date"`
    32  
    33  	// experiment id
    34  	ExperimentID *string `json:"experiments.experiment_id,omitempty" db:"experiments.experiment_id"`
    35  
    36  	// has project files
    37  	HasProjectFiles *bool `json:"experiments.has_project_files,omitempty" db:"experiments.has_project_files"`
    38  
    39  	// opened date
    40  	OpenedDate *string `json:"experiments.opened_date,omitempty" db:"experiments.opened_date"`
    41  
    42  	// panel assay screened
    43  	PanelAssayScreened *string `json:"experiments.panel_assay_screened,omitempty" db:"experiments.panel_assay_screened"`
    44  
    45  	// pcr
    46  	Pcr *string `json:"experiments.pcr,omitempty" db:"experiments.pcr"`
    47  
    48  	// priority
    49  	Priority *string `json:"experiments.priority,omitempty" db:"experiments.priority"`
    50  
    51  	// procedure order datetime
    52  	ProcedureOrderDatetime *string `json:"experiments.procedure_order_datetime,omitempty" db:"experiments.procedure_order_datetime"`
    53  
    54  	// project id
    55  	ProjectID *string `json:"experiments.project_id,omitempty" db:"experiments.project_id"`
    56  
    57  	// project name
    58  	ProjectName *string `json:"experiments.project_name,omitempty" db:"experiments.project_name"`
    59  
    60  	// sample id
    61  	SampleID *string `json:"experiments.sample_id,omitempty" db:"experiments.sample_id"`
    62  
    63  	// study id
    64  	StudyID *string `json:"experiments.study_id,omitempty" db:"experiments.study_id"`
    65  
    66  	// test date
    67  	TestDate *string `json:"experiments.test_date,omitempty" db:"experiments.test_date"`
    68  }
    69  
    70  //ExperimentEnum is a struct that grabs the validation values from the enums.yaml file
    71  type ExperimentEnum struct {
    72  	Panelassayscreened []string
    73  	Priority           []string
    74  }
    75  
    76  // Validate validates this experiment
    77  func (m *Experiment) Validate(formats strfmt.Registry) error {
    78  	var res []error
    79  
    80  	if len(res) > 0 {
    81  		return errors.CompositeValidationError(res...)
    82  	}
    83  	result := m.CheckEnums(Enums)
    84  	if !result {
    85  		return goerror.New("Enums Invalid")
    86  	}
    87  	return nil
    88  }
    89  
    90  // CheckEnums validates this experiments enums
    91  func (m *Experiment) CheckEnums(exe *ExperimentEnum) bool {
    92  	result := true
    93  	var interResult bool
    94  	for i := range exe.Panelassayscreened {
    95  		if m.PanelAssayScreened != nil {
    96  			if exe.Panelassayscreened[i] == *m.PanelAssayScreened {
    97  				interResult = true
    98  				break
    99  			}
   100  		}
   101  		interResult = false
   102  	}
   103  	result = result && interResult
   104  	return result
   105  }
   106  
   107  // MarshalBinary interface implementation
   108  func (m *Experiment) MarshalBinary() ([]byte, error) {
   109  	if m == nil {
   110  		return nil, nil
   111  	}
   112  	return swag.WriteJSON(m)
   113  }
   114  
   115  // UnmarshalBinary interface implementation
   116  func (m *Experiment) UnmarshalBinary(b []byte) error {
   117  	var res Experiment
   118  	if err := swag.ReadJSON(b, &res); err != nil {
   119  		return err
   120  	}
   121  	*m = res
   122  	return nil
   123  }
   124  
   125  //GetEnums fills the PanelAssayScreened struct
   126  func GetEnums(e *ExperimentEnum) *ExperimentEnum {
   127  	e = &ExperimentEnum{}
   128  
   129  	path, _ := filepath.Abs("./models/enums.yaml")
   130  	yamlFile, err := ioutil.ReadFile(path)
   131  	if err != nil {
   132  		log.Printf("yamlFile.Get err   #%v ", err)
   133  	}
   134  	err = yaml.Unmarshal(yamlFile, e)
   135  	if err != nil {
   136  		log.Fatalf("Unmarshal: %v", err)
   137  	}
   138  
   139  	return e
   140  }