No project description provided
Project description
`__init__.py`
```python
from .patients import patients
from pylib.falcon.jsonmiddlerware import RequireJSON, JSONTranslator
import falcon
# setup required middleware
api = falcon.API(middleware=[
RequireJSON(),
JSONTranslator()
])
# our custom error serializer
def __json_error_serializer(req, exception):
return ('application/json', exception.to_json())
api.set_error_serializer(__json_error_serializer)
patients.register(api)
```
`patients.py`
```python
from pylib.schema import validators
from pylib.falcon import Collection
from marshmallow import Schema
from marshmallow.fields import Int, Str, Date
all_patients = []
counter = 0
def authenticate(req, resp, res, params):
pass
def authorize(req, resp, res, params):
pass
class PatientSchema(Schema):
id = Int()
firstname = Str(required=True)
surname = Str()
dob = Date()
homephone = Str(validate=validators.phone_check)
patients = Collection(
'/api/patients', 'pid',
PatientSchema(), before=[authenticate])
def has_same_key_predicate(key, query):
def predicate(patient):
value = patient.get(key)
return value and value.startswith(query)
return predicate
@patients.search(before=[authorize])
def search(query, query_type, **kwargs):
if query is None:
return all_patients
query_type = 'firstname' if query_type is None else query_type
return list(filter(
has_same_key_predicate(query_type, query),
all_patients))
@patients.create(before=[authorize])
def create(patient, **kwargs):
all_patients.append(patient)
return len(all_patients) - 1
@patients.read(before=[authorize])
def get(pid):
if pid < len(all_patients):
return all_patients[pid]
@patients.update(before=[authorize])
def update(pid, patient):
if pid < len(all_patients):
all_patients[pid] = patient
return patient
@patients.delete(before=[authorize])
def delete(pid):
if pid < len(all_patients):
patient = all_patients[pid]
all_patients.pop(pid)
return patient
```
```python
from .patients import patients
from pylib.falcon.jsonmiddlerware import RequireJSON, JSONTranslator
import falcon
# setup required middleware
api = falcon.API(middleware=[
RequireJSON(),
JSONTranslator()
])
# our custom error serializer
def __json_error_serializer(req, exception):
return ('application/json', exception.to_json())
api.set_error_serializer(__json_error_serializer)
patients.register(api)
```
`patients.py`
```python
from pylib.schema import validators
from pylib.falcon import Collection
from marshmallow import Schema
from marshmallow.fields import Int, Str, Date
all_patients = []
counter = 0
def authenticate(req, resp, res, params):
pass
def authorize(req, resp, res, params):
pass
class PatientSchema(Schema):
id = Int()
firstname = Str(required=True)
surname = Str()
dob = Date()
homephone = Str(validate=validators.phone_check)
patients = Collection(
'/api/patients', 'pid',
PatientSchema(), before=[authenticate])
def has_same_key_predicate(key, query):
def predicate(patient):
value = patient.get(key)
return value and value.startswith(query)
return predicate
@patients.search(before=[authorize])
def search(query, query_type, **kwargs):
if query is None:
return all_patients
query_type = 'firstname' if query_type is None else query_type
return list(filter(
has_same_key_predicate(query_type, query),
all_patients))
@patients.create(before=[authorize])
def create(patient, **kwargs):
all_patients.append(patient)
return len(all_patients) - 1
@patients.read(before=[authorize])
def get(pid):
if pid < len(all_patients):
return all_patients[pid]
@patients.update(before=[authorize])
def update(pid, patient):
if pid < len(all_patients):
all_patients[pid] = patient
return patient
@patients.delete(before=[authorize])
def delete(pid):
if pid < len(all_patients):
patient = all_patients[pid]
all_patients.pop(pid)
return patient
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gakp-pylib-0.2.7.tar.gz
(11.6 kB
view hashes)
Built Distribution
gakp_pylib-0.2.7-py3-none-any.whl
(18.1 kB
view hashes)
Close
Hashes for gakp_pylib-0.2.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3925a47c77d967e1c319109d948aaedf8a960c13a2f2f24b135937e87424d876 |
|
MD5 | 47d1f22b360fa018ad2ef9c6efb26b68 |
|
BLAKE2b-256 | ec0440c9df74540f460d396ca0187e273bb454750dfb925f9745734dc6040634 |