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  }