Πέμπτη 6 Δεκεμβρίου 2018

Laravel Custom Validation "comma separated*

Do you need to validate that something is a comma separated string and each entry should be then validated that it is a valid email, phone etc?

Simply add the following in your  AppServiceProvider's boot function:

        Validator::extend('comma_separated', function ($attribute, $value, $parameters, $validator) {
            $entryRules = $parameters[0];
            $parts = explode(",", $value);
            if ($entryRules) {
                foreach ($parts as $part) {
                    $entryValidator = 
                        validator(
                            ["value" => $part], 
                            ["value" => $entryRules], 
                            [],  
                            ["value" => $validator->getDisplayableAttribute($attribute) . " > Value"]
                        );
                    if ($entryValidator->fails()) {
                        foreach ($entryValidator->errors()->getMessages() as $validationErrors) {
                            if (is_array($validationErrors)) {
                                foreach ($validationErrors as $validationError) {
                                    $validator->errors()->add($attribute, $validationError);
                                }
                            }
                            else {
                                $validator->errors()->add($attribute, $validationErrors);
                            }
                        }
                        return FALSE;
                    }
                }
            }
            return TRUE;
        });

And use it like in the following snippet:

    $something = "something";
    $validator = validator(["value" => $something], ["value" => "comma_separated:email"]);

In my project, I have defined it in the $rules of my model class:

    public static $rules = [
      "datetime_from" => "required|date",
      "datetime_to" => "required|date|after_or_equal:datetime_from",
      "attendees" => "required|comma_separated:email",
      "title" => "required|min:3|max:255",
      "description" => "max:2000",
    ];

Δευτέρα 22 Οκτωβρίου 2018

Διαχείριση προσωπικών δεδομένων & επικοινωνιών.

Όλοι δεχόμαστε άπειρα τηλεφωνήματα για προώθηση προϊοντων και προσφορές του παρόχου μας ή ανταγωνιστών. Αυτό όμως γινόταν ασύστολα μέχρι που εμφανίστηκε το GDPR.

Το GDPR είναι ο φόβος και ο τρόμος των προωθήσεων καθώς πρέπει να έχουν την ενεργητική συνένεση του καταναλωτή ώστε να μπορούν να του προωθούν προϊόντα. Αυτός ο ευρωπαϊκός κανονισμός ανάγκασε όλες τις μεγάλες εταιρείες να δώσουν την δυνατότητα στους πελάτες να επιλέγουν αν και ποιες ενέργειες "παρακολούθησης" και "επικοινωνίας" επιτρέπονται.

Μια πάρα πολύ ωραία υλοποίηση, είναι αυτή που έχει γίνει στην εφαρμογή του Vodafone CU. Πραγματικά με ενθουσίασε το πόσο αναλυτικά έχουν τις επιλογές, αλλά και ότι σου βγάζει ένα τίμιο μήνυμα ότι μπορεί να χρειαστούν 24 ώρες για να ενεργοποιηθούν οι ρυθμίσεις.

Long Story Short:
  1. Εχεις Vodafone CU?
  2. Σε ενοχλούν με διαφημίσεις;
  3. Κατέβασε την εφαρμογή (Google Play, Apple App Store
  4. Ανοιξε την
  5. Συνδεσου
  6. Πηγαινε Μενου > Ρυθμίσεις > Διαχείριση προσωπικών δεδομένων & επικοινωνιών
  7. Επέλεξε τι θέλεις και αποθήκευσε τις ρυθμίσεις σου


Σημειωση: Το έκανα σήμερα, οποτε τις επόμενες ημέρες θα δω αν θα με ενοχλήσουν ή οχι! Ελπίζω να μην με ενοχλήσουν και να επιβεβαιώσει η Vodafone ότι ειναι σοβαρη εταιρεια που σέβεται τον καταναλωτη!

LinkWithin

Blog Widget by LinkWithin

Mobile edition