Source code for harpseal.models
"""
Models
~~~~~~
"""
from datetime import datetime
from mongoengine import *
from harpseal.conf import Config
__all__ = ['make_model']
class Items(DynamicEmbeddedDocument):
pass
[docs]def make_model(name, args):
"""Create a new model with name and arguments given."""
def add(self, **kwargs):
items = Items(**kwargs)
self.items = items
self.created_at = datetime.now()
expires = Config()['expires']
meta = {
'indexes': [
{'fields': ['-created_at'], 'expireAfterSeconds': expires}
]
}
cls = type(name, (DynamicDocument, ), {'add': add, 'meta': meta})
return cls