AMKA new /isamka endpoint

parent f0e7b39d
......@@ -24,6 +24,7 @@ body, αναφέρονται παρακάτω στις σχετικές παρα
| GET | amka/{amka}/{surname} | TEXT κείμενο: true ή false | validateAmka |
| GET | amka/{amka}/{surname}/extended | JSON μήνυμα | validateAmka |
| GET | amka/{amka}/{surname}[/extended]?fields=[comma separated list of field names] | TEXT μήνυμα | validateAmka |
| GET | isamka/{amka} | TEXT κείμενο: true ή false | isAmka |
Σε περίπτωση λάθους, όπως για παράδειγμα μη έγκυρο ΑΜΚΑ ή άλλου λάθους από την
πλευρά του [open.gunet.gr/apis/amka-services/](http://open.gunet.gr/apis/amka-services/)
......@@ -66,6 +67,15 @@ body, αναφέρονται παρακάτω στις σχετικές παρα
> Στα παρακάτω δείγματα κλήσης θεωρείται ότι η εφαρμογή είναι διαθέσιμη στη διεύθυνση: http://generic.local.dev/public/
## Έλεγχος ύπαρξης ΑΜΚΑ
- `http://generic.local.dev/public/isamka/12097301234`
Δείγμα απάντησης
```
true
```
## Έλεγχος εγκυρότητας ΑΜΚΑ
- `http://generic.local.dev/public/amka/12097301234/ΠΑΠΑΔΑΚΗΣ`
......
......@@ -168,6 +168,54 @@ class App
}
}
/**
* Έλεγχος ύπαρξης αριθμού ΑΜΚΑ.
*
* @param Psr\Http\Message\ServerRequestInterface $req
* @param Psr\Http\Message\ResponseInterface $res
* @param string[] $args Πίνακας με παραμέτρους από το call:
* 'amka' Το ΑΜΚΑ για έλεγχο
* @throws \Exception
* @return Response
*/
public function isAmka($req, $res, $args)
{
$amka = $args['amka'];
$surname = 'THISISARATHERLONGANDNONEXISTANTNAME';
$bdate = '';
if (preg_match('/^([0-9]{2})([0-9]{2})([0-9]{2})[0-9]{5}/', $amka, $bdate_parts) === 1) {
$bdate = "{$bdate_parts[3]}-{$bdate_parts[2]}-{$bdate_parts[1]}";
if (intval($bdate_parts[3]) > 40) {
$bdate = "19{$bdate}";
}
} else {
// malformed id input
return $res->withJson(['message' => 'Error: Service call parameters error, amka id must be a 11 digit number'], 400);
}
$data = [
'ssn' => $amka,
'birthdate' => $bdate,
'surname' => $surname,
];
$this->logger->info("isAmka::{$amka}");
$headers = [
"Authorization: Token {$this->key}",
'Content-Type: application/json'
];
$results = $this->client->get($this->url, $data, $headers);
if ($results['success'] === false) {
return $this->withTextReady($res, 'false');
}
$result = $results['response'];
$result = json_decode($result, true);
return $this->withTextReady($res, (isset($result['match']) && ($result['match'] === 'false')) ? 'true' : 'false');
}
public function setDebug($debug = true)
{
$this->client->setDebug($debug === true);
......
......@@ -2,6 +2,8 @@
$app->get('/amka/{amka}/{surname}[/{extended}]', '\Gr\Gov\Minedu\Osteam\Slim\App:validateAmka')
->setName('amka');
$app->get('/amka/isamka/{amka}', '\Gr\Gov\Minedu\Osteam\Slim\App:isAmka')
->setName('amka');
$app->any('/[{anythingelse}]', function ($request, $response, $args) {
$this->logger->info("Void response, no action route was enabled");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment