github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/directeurs/requete.go (about) 1 package directeurs 2 3 import ( 4 "bytes" 5 6 dm "github.com/benoitkugler/goACVE/server/core/datamodel" 7 rd "github.com/benoitkugler/goACVE/server/core/rawdata" 8 "github.com/benoitkugler/goACVE/server/core/utils/joomeo" 9 "github.com/benoitkugler/goACVE/logs" 10 "github.com/benoitkugler/goACVE/server/documents" 11 "github.com/benoitkugler/goACVE/server/shared" 12 ) 13 14 // pour un camp simplifié, les méthodes suivantes sont ignorées 15 // et renvoies systématiquement une erreur 16 type noOpsSimple interface { 17 exportListeFinances() (*bytes.Buffer, error) 18 exportListeEquipiers() (*bytes.Buffer, error) 19 updateEnvois(env rd.Envois) error 20 getBonusDocs(host string) ([]documents.PublicDocument, error) 21 } 22 23 // Driver unifie la gestion des camps normaux et des camps simplifiés. 24 type Driver interface { 25 Token() string 26 Camp() dm.AccesCamp 27 28 noOpsSimple 29 30 loadDataInscrits() error 31 loadDataEquipiers() error 32 33 getDetails() Details 34 updateDetails(det DetailsWritable) error 35 36 getInscrits(host string) ([]Inscrit, error) 37 modifieInscrit(modif InscritWritable, id int64) error 38 39 exportListeInscrits(options optionsExportExcel) (*bytes.Buffer, error) 40 41 loadJoomeoData() (data JoomeoData, err error) 42 addJoomeoContacts(mails []string, sendMail bool) (contacts []joomeo.ContactPermission, errors []string, err error) 43 setContactUploader(contactid string) (contacts []joomeo.ContactPermission, errSuperContact, err error) 44 deleteContact(contactid string) (contacts []joomeo.ContactPermission, err error) 45 } 46 47 // driverShared implémente les fonctionnalités 48 // communes aux camps simples et complets 49 type driverShared struct { 50 shared.Controller 51 52 joomeo logs.Joomeo 53 camp dm.AccesCamp 54 token string 55 } 56 57 func (r driverShared) Token() string { 58 return r.token 59 } 60 61 func (r driverShared) Camp() dm.AccesCamp { 62 return r.camp 63 } 64 65 // Implémentes les fonctionnalités des sejours complets 66 type DriverCampComplet struct { 67 driverShared 68 contraintesEquipiers rd.Contraintes 69 } 70 71 // Implémente les fonctionnalités des séjours simplifiés 72 type DriverCampSimple struct { 73 driverShared 74 }