diff --git a/entity/templates/app/models/_entity.py b/entity/templates/app/models/_entity.py index e30e88a..e6c7dd7 100644 --- a/entity/templates/app/models/_entity.py +++ b/entity/templates/app/models/_entity.py @@ -1,16 +1,17 @@ from app import db + class <%= _.capitalize(name) %>(db.Model): - id = db.Column(db.Integer, primary_key = True) + id = db.Column(db.Integer, primary_key=True) <% _.each(attrs, function (attr) { %> <%= attr.attrName %> = db.Column(db.<% if (attr.attrType == 'Enum') { %>Enum(<% var delim = ''; _.each(attr.enumValues, function (value) { %><%= delim %>'<%= value %>'<% delim = ', '; }) %>)<% } else { %><%= attr.attrType %><% }; %>) <% }); %> def to_dict(self): return dict(<% _.each(attrs, function (attr) { %> - <%= attr.attrName %> = self.<%= attr.attrName %><% if (attr.attrType == 'Date') { %>.isoformat()<% }; %>,<% }); %> - id = self.id + <%= attr.attrName %>=self.<%= attr.attrName %><% if (attr.attrType == 'Date') { %>.isoformat()<% }; %>,<% }); %> + id=self.id ) def __repr__(self): - return '<<%= _.capitalize(name) %> %r>' % (self.id) + return '<<%= _.capitalize(name) %> %r>' % self.id diff --git a/entity/templates/app/routes/_entities.py b/entity/templates/app/routes/_entities.py index fb91436..8648da7 100644 --- a/entity/templates/app/routes/_entities.py +++ b/entity/templates/app/routes/_entities.py @@ -4,11 +4,13 @@ import datetime import json + @app.route('/<%= baseName %>/<%= pluralize(name) %>', methods = ['GET']) def get_all_<%= pluralize(name) %>(): entities = <%= name %>.<%= _.capitalize(name) %>.query.all() return json.dumps([entity.to_dict() for entity in entities]) + @app.route('/<%= baseName %>/<%= pluralize(name) %>/', methods = ['GET']) def get_<%= name %>(id): entity = <%= name %>.<%= _.capitalize(name) %>.query.get(id) @@ -16,28 +18,31 @@ def get_<%= name %>(id): abort(404) return jsonify(entity.to_dict()) + @app.route('/<%= baseName %>/<%= pluralize(name) %>', methods = ['POST']) def create_<%= name %>(): entity = <%= name %>.<%= _.capitalize(name) %>(<% var delim = ''; _.each(attrs, function (attr) { %> - <%= delim %><%= attr.attrName %> = <% if (attr.attrType == 'Date') { %>datetime.datetime.strptime(request.json['<%= attr.attrName %>'], "%Y-%m-%d").date()<% } else { %>request.json['<%= attr.attrName %>']<% } %><% delim = ', '; }); %> + <%= delim %><%= attr.attrName %>=<% if (attr.attrType == 'Date') { %>datetime.datetime.strptime(request.json['<%= attr.attrName %>'], "%Y-%m-%d").date()<% } else { %>request.json['<%= attr.attrName %>']<% } %><% delim = ', '; }); %> ) db.session.add(entity) db.session.commit() return jsonify(entity.to_dict()), 201 + @app.route('/<%= baseName %>/<%= pluralize(name) %>/', methods = ['PUT']) def update_<%= name %>(id): entity = <%= name %>.<%= _.capitalize(name) %>.query.get(id) if not entity: abort(404) entity = <%= name %>.<%= _.capitalize(name) %>(<% _.each(attrs, function (attr) { %> - <%= attr.attrName %> = <% if (attr.attrType == 'Date') { %>datetime.datetime.strptime(request.json['<%= attr.attrName %>'], "%Y-%m-%d").date(),<% } else { %>request.json['<%= attr.attrName %>'],<% }}); %> + <%= attr.attrName %>=<% if (attr.attrType == 'Date') { %>datetime.datetime.strptime(request.json['<%= attr.attrName %>'], "%Y-%m-%d").date(),<% } else { %>request.json['<%= attr.attrName %>'],<% }}); %> id = id ) db.session.merge(entity) db.session.commit() return jsonify(entity.to_dict()), 200 + @app.route('/<%= baseName %>/<%= pluralize(name) %>/', methods = ['DELETE']) def delete_<%= name %>(id): entity = <%= name %>.<%= _.capitalize(name) %>.query.get(id)