Documentation ¶
Index ¶
- Variables
- func CreateTempFileWithContent(t *testing.T, content []byte) *os.File
- func GetJSON(tuple Tuple) ([]byte, error)
- func GetSiret(compte string, date *time.Time, cache Cache, batch *base.AdminBatch) (string, error)
- func GetSiretFromComptesMapping(compte string, date *time.Time, comptes Comptes) (string, error)
- func LogProgress(lineNumber *int) (stop context.CancelFunc)
- func ParseFilesFromBatch(cache Cache, batch *base.AdminBatch, parser Parser) (chan Tuple, chan Event)
- func RunParser(parser Parser, cache Cache, inputFile string) (output tuplesAndEvents)
- func TestParserOutput(t *testing.T, parser Parser, cache Cache, inputFile string, goldenFile string, ...)
- func UrssafToDate(urssaf string) (time.Time, error)
- func UrssafToPeriod(urssaf string) (misc.Periode, error)
- type Cache
- type Code
- type Comptes
- type Event
- type ParsedLineResult
- type Parser
- type ParsingTracker
- type Priority
- type SirenFilter
- type SiretDate
- type Tuple
Constants ¶
This section is empty.
Variables ¶
var MaxParsingErrors = 200
MaxParsingErrors is the number of parsing errors to report per file.
Functions ¶
func CreateTempFileWithContent ¶
CreateTempFileWithContent créée un fichier temporaire et le supprime après le passage (ou échec) du test.
func GetSiretFromComptesMapping ¶
GetSiretFromComptesMapping gets the siret related to a specific compte at a given point in time
func LogProgress ¶
func LogProgress(lineNumber *int) (stop context.CancelFunc)
LogProgress affiche le numéro de ligne en cours de parsing, toutes les 2s.
func ParseFilesFromBatch ¶
func ParseFilesFromBatch(cache Cache, batch *base.AdminBatch, parser Parser) (chan Tuple, chan Event)
ParseFilesFromBatch parse tous les fichiers spécifiés dans batch pour un parseur donné.
func RunParser ¶
RunParser returns Tuples and Events resulting from the execution of a Parser on a given input file.
func TestParserOutput ¶
func TestParserOutput( t *testing.T, parser Parser, cache Cache, inputFile string, goldenFile string, update bool, )
TestParserOutput compares output Tuples and output Events with JSON stored in a golden file. If update = true, the the golden file is updated.
func UrssafToDate ¶
UrssafToDate convertit le format de date urssaf en type Date. Les dates urssaf sont au format YYYMMJJ tels que YYY = YYYY - 1900 (e.g: 118 signifie 2018)
func UrssafToPeriod ¶
UrssafToPeriod convertit le format de période urssaf en type Periode. On trouve ces périodes formatées en 4 ou 6 caractère (YYQM ou YYYYQM). si YY < 50 alors YYYY = 20YY sinon YYYY = 19YY. si QM == 62 alors période annuelle sur YYYY. si M == 0 alors période trimestrielle sur le trimestre Q de YYYY. si 0 < M < 4 alors mois M du trimestre Q.
Types ¶
type Cache ¶
type Cache map[string]interface{}
Cache saves values in memory
type Comptes ¶
Comptes associates a SiretDate to an urssaf account number
func GetCompteSiretMapping ¶
func GetCompteSiretMapping(cache Cache, batch *base.AdminBatch, mr mappingReader) (Comptes, error)
GetCompteSiretMapping returns the siret mapping in cache if available, else reads the file and save it in cache. Lazy loaded.
func MockComptesMapping ¶
MockComptesMapping ...
func OpenAndReadSiretMapping ¶
func OpenAndReadSiretMapping( basePath string, endPath string, compteSiretMapping Comptes, cache Cache, batch *base.AdminBatch, ) (Comptes, error)
OpenAndReadSiretMapping opens files and reads their content
func (*Comptes) GetSortedKeys ¶
GetSortedKeys retourne la liste classée des numéros de Comptes.
type Event ¶
type Event struct { ID bson.ObjectId `json:"-" bson:"_id"` Date time.Time `json:"date" bson:"date"` StartDate time.Time `json:"startDate" bson:"startDate"` Comment interface{} `json:"event" bson:"event"` Priority Priority `json:"priority" bson:"priority"` Code Code `json:"parserCode" bson:"parserCode"` ReportType string `json:"report_type" bson:"record_type"` Channel chan Event `json:"-"` }
Event est un objet de journal swagger:ignore
func CreateEvent ¶
func CreateEvent() (event Event)
CreateEvent initialise un évènement avec les valeurs par défaut.
func (Event) Info ¶
func (event Event) Info(comment interface{})
Info produit un évènement de niveau Info
func (Event) ParseReport ¶
ParseReport permet d'accéder aux propriétés d'un rapport de parsing.
type ParsedLineResult ¶
ParsedLineResult est le résultat du parsing d'une ligne.
func (*ParsedLineResult) AddRegularError ¶
func (res *ParsedLineResult) AddRegularError(err error)
AddRegularError permet au parseur de rapporter une erreur d'extraction.
func (*ParsedLineResult) AddTuple ¶
func (res *ParsedLineResult) AddTuple(tuple Tuple)
AddTuple permet au parseur d'ajouter un tuple extrait depuis la ligne en cours.
func (*ParsedLineResult) SetFilterError ¶
func (res *ParsedLineResult) SetFilterError(err error)
SetFilterError permet au parseur de rapporter que la ligne doit été filtrée.
type Parser ¶
type Parser interface { GetFileType() string Init(cache *Cache, batch *base.AdminBatch) error Open(filePath string) error ParseLines(parsedLineChan chan ParsedLineResult) Close() error }
Parser fournit les fonctions de parsing d'un type de fichier donné.
type ParsingTracker ¶
type ParsingTracker struct {
// contains filtered or unexported fields
}
ParsingTracker permet de collecter puis rapporter des erreurs de parsing.
func NewParsingTracker ¶
func NewParsingTracker() ParsingTracker
NewParsingTracker retourne une instance pour rapporter les erreurs de parsing.
func (*ParsingTracker) AddFatalError ¶
func (tracker *ParsingTracker) AddFatalError(err error)
AddFatalError rapporte une erreur fatale liée au parsing d'un fichier
func (*ParsingTracker) AddFilterError ¶
func (tracker *ParsingTracker) AddFilterError(err error)
AddFilterError rapporte le fait que la ligne en cours de parsing est ignorée à cause du filtre/périmètre
func (*ParsingTracker) AddParseError ¶
func (tracker *ParsingTracker) AddParseError(err error)
AddParseError rapporte une erreur rencontrée sur la ligne en cours de parsing
func (*ParsingTracker) Next ¶
func (tracker *ParsingTracker) Next()
Next informe le Tracker qu'on va parser la ligne suivante.
type SirenFilter ¶
SirenFilter liste les numéros SIREN d'entreprise et établissements à exclure des traitements.
func GetSirenFilter ¶
func GetSirenFilter(cache Cache, batch *base.AdminBatch) (SirenFilter, error)
GetSirenFilter reads the filter from cache if it cans, or else it reads it from input files and stores it in cache
func GetSirenFilterFromCache ¶
func GetSirenFilterFromCache(cache Cache) SirenFilter
GetSirenFilterFromCache reads the filter from cache.
func (SirenFilter) Skips ¶
func (filter SirenFilter) Skips(siretOrSiren string) bool
Skips retourne `false` si le numéro SIREN/SIRET peut être traité, car il est inclus dans le Filtre, ou car il n'y a pas de filtre.