45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package readers
|
|
|
|
import (
|
|
"StoreBackEnd/pkg/protocol"
|
|
"bufio"
|
|
)
|
|
|
|
// EraseFileRulePrefix Identifiant de cette règle
|
|
const EraseFileRulePrefix = "ERASEFILE"
|
|
|
|
// EraseFileRule Demande de suppression d'un fichier
|
|
type EraseFileRule struct {
|
|
// Cmd Nom de la règle
|
|
Cmd string
|
|
|
|
// matcher Permet de vérifier le matching
|
|
matcher *protocol.RegexMatcher
|
|
}
|
|
|
|
// CreateEraseFileRule Création d'une instance de EraseFileRule
|
|
func CreateEraseFileRule(pattern string) protocol.IProtocolReader {
|
|
return &EraseFileRule{
|
|
Cmd: EraseFileRulePrefix,
|
|
matcher: protocol.CreateRegexMatcher(pattern),
|
|
}
|
|
}
|
|
|
|
func (rule EraseFileRule) GetCmd() string {
|
|
return rule.Cmd
|
|
}
|
|
|
|
func (rule EraseFileRule) Execute(data string) (string, bool, func(r *bufio.Reader) (string, bool)) {
|
|
if rule.Match(data) {
|
|
values := rule.matcher.Parse(data)
|
|
println(values[1], " est le hash du fichier à supprimer")
|
|
return "Parsing : Fichier avec le hash " + values[1] + " supprimé", true, nil
|
|
} else {
|
|
return "Parsing : EraseFileRule command incorrecte", false, nil
|
|
}
|
|
}
|
|
|
|
func (rule EraseFileRule) Match(data string) bool {
|
|
return rule.matcher.Match(data)
|
|
}
|