Compare commits

..

6 Commits

Author SHA1 Message Date
Gábor Barna 70e6641e24 Hack some poorly implemented serializer.
TODO: this breaks everything
2016-10-28 11:52:38 +02:00
Gábor Barna 2631c344dd Add parameters and post handler 2016-10-28 11:51:54 +02:00
Gábor Barna 5c7ca46e56 Add get/post parameters to /duck 2016-10-28 11:51:36 +02:00
Gábor Barna 4cb80df58a Change Duck definition 2016-10-28 11:51:06 +02:00
Gábor Barna 70a5a99909 Add simple Duck model 2016-10-28 05:26:16 +02:00
Gábor Barna 039855db6f Connect PG to the app 2016-10-28 04:17:03 +02:00
5 changed files with 81 additions and 14 deletions

17
app.py
View File

@ -1,7 +1,19 @@
#!/usr/bin/env python3
import os
import connexion
from flask_login import LoginManager
import sqlalchemy
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
import models
engine = create_engine( os.environ.get( 'DATABASE_URL', 'sqlite:///:memory:' ), echo=True )
Base.metadata.create_all( engine )
app = connexion.App(__name__, specification_dir='./swagger/')
app.add_api('swagger.yaml',
@ -9,8 +21,5 @@ app.add_api('swagger.yaml',
'title': 'Rubber Duck Booking Tool'
})
login_manager = LoginManager()
#login_manager.init_app(app)
if __name__ == '__main__':
app.run(port=8080)

View File

@ -1,6 +1,15 @@
from flask import Flask, request
from flask_restful import Resource, Api
from models import Duck
#app =
def ducks_get():
return 'do some magic!'
def duck_get():
def duck_get( duck_id ):
return 'do some duck magic!'
def duck_post( name, color ):
new_duck = Duck( name, color )
return new_duck

24
models.py Normal file
View File

@ -0,0 +1,24 @@
import sqlalchemy as sa
import sqlalchemy.orm as orm
from sqlalchemy.ext.declarative import declarative_base
#from flask.ext.login import UserMixin
#from sqlalchemy_login_models.model import Base, UserKey, User as SLM_User
__all__ = ['Duck']
Base = declarative_base()
class Duck( Base ):
__tablename__ = 'duck'
__name__ = "duck"
duck_id = sa.Column( sa.Integer, primary_key=True )
name = sa.Column( sa.String )
color = sa.Column( sa.String )
def __repr__(self):
return '{"duck_id": "'+ ( str( self.duck_id ) or '0' ) +'", "name": "'+ self.name +'", "color": "'+ self.color +'" }'
def __init__(self, name, color):
self.name = name
self.color = color

View File

@ -2,4 +2,5 @@ Flask==0.11.1
Flask-RESTful==0.3.5
connexion==1.0.129
gunicorn
flask-login
sqlalchemy
psycopg2

View File

@ -20,7 +20,7 @@ paths:
200:
description: "An object which contains metadata and an array of ducks"
schema:
type: array
type: "array"
items:
$ref: '#/definitions/Duck'
security:
@ -30,9 +30,33 @@ paths:
tags:
- "default_controller"
operationId: "controllers.default_controller.duck_get"
parameters:
- name: "duck_id"
description: "ID of the Duck"
in: "path"
required: true
type: "integer"
responses:
200:
description: "All data regarding the specified duck"
post:
tags:
- "default_controller"
operationId: "controllers.default_controller.duck_post"
parameters:
- name: "name"
description: "Name of the Duck"
in: "formData"
required: true
type: "string"
- name: "color"
description: "Color of the Duck"
in: "formData"
required: true
type: "string"
responses:
200:
description: "Cool"
securityDefinitions:
api_key:
type: "apiKey"
@ -40,17 +64,17 @@ securityDefinitions:
in: "header"
definitions:
Duck:
type: object
type: "object"
properties:
duck_id:
type: number
description: ID number of the duck
type: "integer"
description: "ID number of the duck"
name:
type: string
description: The name of the duck
type: "string"
description: "The name of the duck"
color:
type: string
description: Color of the duck
type: "string"
description: "Color of the duck"
#species = models.ForeignKey(Species)
#location = models.ForeignKey(Location)
#competencies: