fix: reset fail user fail counter on password update (#6198)
[openemr.git] / src / RestControllers / PractitionerRestController.php
blobe0a540f805902dbdbc351eecf4ccc0700857b19d
1 <?php
3 /**
4 * PractitionerRestController
6 * @package OpenEMR
7 * @link http://www.open-emr.org
8 * @author Matthew Vita <matthewvita48@gmail.com>
9 * @author Yash Bothra <yashrajbothra786gmail.com>
10 * @copyright Copyright (c) 2018 Matthew Vita <matthewvita48@gmail.com>
11 * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
14 namespace OpenEMR\RestControllers;
16 use OpenEMR\Services\PractitionerService;
17 use OpenEMR\RestControllers\RestControllerHelper;
19 class PractitionerRestController
21 private $practitionerService;
23 /**
24 * White list of practitioner search fields
26 private const WHITELISTED_FIELDS = array(
27 "title",
28 "fname",
29 "lname",
30 "mname",
31 "federaltaxid",
32 "federaldrugid",
33 "upin",
34 "facility_id",
35 "facility",
36 "npi",
37 "email",
38 "specialty",
39 "billname",
40 "url",
41 "assistant",
42 "organization",
43 "valedictory",
44 "street",
45 "streetb",
46 "city",
47 "state",
48 "zip",
49 "phone",
50 "fax",
51 "phonew1",
52 "phonecell",
53 "notes",
54 "state_license_number",
55 "username"
58 public function __construct()
60 $this->practitionerService = new PractitionerService();
63 /**
64 * Fetches a single practitioner resource by id.
65 * @param $uuid- The practitioner uuid identifier in string format.
67 public function getOne($uuid)
69 $processingResult = $this->practitionerService->getOne($uuid);
71 if (!$processingResult->hasErrors() && count($processingResult->getData()) == 0) {
72 return RestControllerHelper::handleProcessingResult($processingResult, 404);
75 return RestControllerHelper::handleProcessingResult($processingResult, 200);
78 /**
79 * Returns practitioner resources which match an optional search criteria.
81 public function getAll($search = array())
83 $validSearchFields = $this->practitionerService->filterData($search, self::WHITELISTED_FIELDS);
84 $processingResult = $this->practitionerService->getAll($validSearchFields);
85 return RestControllerHelper::handleProcessingResult($processingResult, 200, true);
88 /**
89 * Process a HTTP POST request used to create a practitioner record.
90 * @param $data - array of practitioner fields.
91 * @return a 201/Created status code and the practitioner identifier if successful.
93 public function post($data)
95 $filteredData = $this->practitionerService->filterData($data, self::WHITELISTED_FIELDS);
96 $processingResult = $this->practitionerService->insert($filteredData);
97 return RestControllerHelper::handleProcessingResult($processingResult, 201);
101 * Processes a HTTP PATCH request used to update an existing practitioner record.
102 * @param $uuid - The practitioner uuid identifier in string format.
103 * @param $data - array of practitioner fields (full resource).
104 * @return a 200/Ok status code and the practitioner resource.
106 public function patch($uuid, $data)
108 $filteredData = $this->practitionerService->filterData($data, self::WHITELISTED_FIELDS);
109 $processingResult = $this->practitionerService->update($uuid, $filteredData);
110 return RestControllerHelper::handleProcessingResult($processingResult, 200);