andrey-helldar/blacklist-server

This package is abandoned and no longer maintained. The author suggests using the johannebert/laravel-spam-protector package instead.

The blacklist server package

Installs: 60

Dependents: 0

Suggesters: 1

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 1

pkg:composer/andrey-helldar/blacklist-server

v2.2.1 2020-12-30 19:48 UTC

README

blacklist server

StyleCI Total Downloads Latest Stable Version Latest Unstable Version License

Content

Installation

To get the latest version of Laravel Blacklist Server, simply require the project using Composer:

composer require andrey-helldar/blacklist-server

Instead, you may of course manually update your require block and run composer update if you so choose:

{
    "require": {
        "andrey-helldar/blacklist-server": "^2.0"
    }
}

Now, you can also publish the config file to change implementations (ie. interface to specific class):

php artisan vendor:publish --provider="Helldar\BlacklistClient\ServiceProvider"

Using

First look at the config.

After installation, your application will accept incoming requests for the creation and verification of spammers in stop lists. To do this, you can use packet andrey-helldar/blacklist-client or simply send a POST or GET request to address https://<your-site.com>/api/blacklist, passing the necessary parameters:

field required comment
type sometimes available is: "email", "url", "ip", "phone"
value yes string

In order for the server part to be able to add or check spammers on its own, you can install package andrey-helldar/blacklist-client on it or go the more complicated way using facades:

use Helldar\BlacklistServer\Facades\Blacklist;

return Blacklist::store('[email protected]', 'email') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('[email protected]') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('[email protected]') : bool

return Blacklist::store('http://example.com', 'url') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('http://example.com') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('http://example.com') : bool

return Blacklist::store('192.168.1.1', 'ip') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('192.168.1.1') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('192.168.1.1') : bool

return Blacklist::store('+0 (000) 000-00-00', 'phone') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('+0 (000) 000-00-00') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('+0 (000) 000-00-00') : bool

However, we recommend using the client.

store

When sending a POST request to the address of server https://<your-site>/api/blacklist with the correct data. Foe example:

POST https://<your-site>/api/blacklist
Content-Type: application/json

{
  "type": "email",
  "value": "[email protected]"
}

It will return a JSON object:

{
  "type": "email",
  "value": "[email protected]",
  "expired_at": "2024-05-11 16:41:04",
  "created_at": "2019-09-14 11:45:04",
  "updated_at": "2019-09-14 16:41:04"
}

If the data being sent is filled incorrectly, the server will return an error with code 400 and the following JSON object:

{
  "error": {
    "code": 400,
    "msg": ["<message of the error>"]
  },
  "request": {
    // incoming data
  }
}

For example:

{
  "error": {
    "code": 400,
    "msg": ["The type must be one of email, url, phone or ip, null given."]
  },
 "request": {
   "type": "foo",
   "value": "[email protected]"
 }
}

exists

If the requested data is not found in the database, the site will return a 200 code:

"ok"

If the requested data is found in the database, the site will return the code 423 (Locked):

{
  "error": {
    "code": 423,
    "msg": ["Checked email [email protected] was found in our database."]
  },
  "request": {
    "value": "[email protected]"
  }
}

If the data being sent is filled incorrectly, the server will return an error with code 400 and the following JSON object. For example:

{
  "error": {
    "code": 400,
    "msg": ["The value field is required."]
  },
  "request": {}
}

{
  "error": {
    "code": 400,
    "msg": ["The type must be one of email, url, phone or ip, null given."]
  },
  "request": {
    "type": "foo",
    "value": "[email protected]"
  }
}

License

This package is released under the MIT License.