{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"d68884c0-62f5-4162-9804-dbdadc04e41e","name":"Access Control - Time Attendance","description":"RESTful API Τερματικών ελέγχου πρόσβασης Time Attendace - Access Control (ACTA)\n\n# Authentication - Authorization\n\nΓια αυθεντικοποίηση χρησιμοποιείται Bearer Authentication, δηλαδή προστίθεται η κεφαλίδα  \n`Authorization: Bearer` . Θα πρέπει να προσαρτάται σε όλα τα αιτήματα που απαιτείται να είναι συνδεδεμένος ο χρήστης/συσκευή. Εννοείται πώς για κάθε τερματικό αυτό θα είναι διαφορετικό και το λαμβάνετε μέσα από το πάνελ διαχείρισης ή από [Get API Token](#346b1c14-3734-477b-8310-41ac5fb85c28).\n\n# Ομοιόμορφα Τερματικά\n\nΣε κάθε εγκατάσταση **όλα τα τερματικά** θα ακούνε στην **ίδια θύρα**. Δεν υπάρχει η δυνατότητα ρύθμισης διαφορετικής θύρας για κάθε τερματικό (όπως στο Parking). Όλα τα αιτήματα που πηγάζουν από τον server π.χ. άνοιγμα μπάρας, θα στέλνονται σε αυτή τη θύρα με μορφή json. Για λόγους ασφάλειας κι αφού ο server δεν στέλνει κάποιο κλειδί για πιστοποίηση προτείνω τα τερματικά να επαληθεύουν την IP του αποστολέα ότι πρόκειται για του server κι όχι ξένου (πιθανώς κακόβουλου) μηχανήματος. Αυτό το σύστημα περιέχει endpoint που επιτρέπουν στα τερματικά να μην αποθηκεύουν τίποτα στα αρχεία τους, ούτε καν το κλειδί αυθεντικοποίησης.\n\n# Εντολές server προς τερματικά\n\nΟ server στέλνει εντολές σε μορφή json στα τερματικά στην προσυμφωνημένη θύρα. Όλα τα μηνύματα θα έχουν τουλάχιστον το attribute _action_ στο οποίο θα αναγράφεται η εντολή κι από εκεί και πέρα αναλόγως την εντολή θα υπάρχουν κι επιπλέον attributes, π.χ. `{ \"action\": \"open\" }`. Ακολούθως παρατείθεται η λίστα με τις τρέχουσες εντολές και το συνολικό μήνυμα.\n\n| Εντολή | action | λοιπά |\n| --- | --- | --- |\n| Άνοιγμα Μπάρας | open-barrier |  |\n\n### Telescope\n\nΣτα request στο telescope μπορείτε να αναζητήσετε request χρησιμοποιώντας tags, δεν γίνεται διάκριση πεζών - κεφαλαίων.\n\n| Tag | Σχόλια |\n| --- | --- |\n| `ip:...` | αναζήτηση αιτημάτων βάσει IP `ip:192.168.1.2` |\n| `access` | αιτήματα πρόσβασης |\n| `card:...` | αιτήματα για τον κωδικό κάρτας `YkI-23112-cml` |\n| `terminal:...` | αιτήματα από αυτό το ID τερματικού `terminal:2` |\n| `auth:...` | αιτήματα από αυτόν τον χρήστη/τερματικό ID χρήστη `terminal:3` |\n| `terminal:` | για αιτήματα που απαιτείται api token αλλά δεν δόθηκε |\n| `status:...` | αναζήτηση βάσει http status `status:422` |\n| `method:...` | αναζήτηση βάσει http method `method:GET` |\n\nΜπορείτε επίσης από την σελίδα **Logs** να δείτε το log του server συμπεριλαμβανομένων τον [μηνυμάτων συσκευών](#d285a2de-0359-411c-bc97-d80ce6fb41eb). Εδώ μπορείτε να αναζητήσετε με το tag `auth:...`.\n\n### Exceptions\n\n| Exception                  | Status | Message                            |\n|----------------------------|--------|------------------------------------|\n| AccessDeniedException      | 412    | Δεν επιτρέπεται η πρόσβαση         |\n| CardNotFoundException      | 412    | Δεν βρέθηκε η κάρτα.               |\n| InvalidDataException       | 422    | Μη έγκυρα δεδομένα                 |\n| NotEnteredException        | 412    | Δεν έχει γίνει είσοδος.            |\n| OperationDisabledException | 412    | Η διαδικασία έχει απενεργοποιηθεί. |\n| SocketException            | 412    | exception.Socket                   |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"1408338","team":144634,"collectionId":"d68884c0-62f5-4162-9804-dbdadc04e41e","publishedId":"TzCS45a6","public":true,"publicUrl":"https://documenter-api.postman.tech/view/1408338/TzCS45a6","privateUrl":"https://go.postman.co/documentation/1408338-d68884c0-62f5-4162-9804-dbdadc04e41e","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.11.4","publishDate":"2021-04-06T13:26:22.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/3e8dc3e1db0b797a258c4d9586e7108c883d27f6f2e13ea6090bc75dfd1db7ef","favicon":"https://res.cloudinary.com/postman/image/upload/v1608127177/team/q2jufvce9yfkpnznyloa.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/TzCS45a6"}