def create_user(environ, start_response):
    """Create a user with a given username and key"""

    size = check_post_data(environ, start_response)
    if size:
        data = environ['wsgi.input'].read(size)
        data = json.loads(data)

        username = data['username']
        key = data['key']
        user = User()

        start_response('200 OK', [('Content-Type', 'application/json')])
        json_doc = user.create(username=username, key=key)
        return [json.dumps(json_doc)]

    else:
        start_response('400 BAD DATA', [('Content-Type', 'application/json')])
        json_doc = {'status': False,
                    'message': 'Missing data.'}
        return [json.dumps(json_doc)]
def create_doc(environ, start_response):
    """Create a Document with a given doc_id and doc_text
    (and user credentials - username and key)"""

    size = check_post_data(environ, start_response)
    if size:
        data = environ['wsgi.input'].read(size)
        data = json.loads(data)

        try:
            doc_id = data['doc_id']
            doc_text = data['doc_text']
            username = data['username']
            key = data['key']

            if check_credentials(username, key):
                doc = Document()

                start_response('200 OK',
                               [('Content-Type', 'application/json')])
                json_doc = doc.create(doc_id=doc_id, doc_text=doc_text)
                return [json.dumps(json_doc)]
            else:
                raise KeyError

        except KeyError:
            start_response('400 BAD DATA',
                           [('Content-Type', 'application/json')])
            json_doc = {'status': False,
                        'message': 'Missing data.'}
            return [json.dumps(json_doc)]

    else:
        start_response('400 BAD DATA', [('Content-Type', 'application/json')])
        json_doc = {'status': False,
                    'message': 'Missing data.'}
        return [json.dumps(json_doc)]