Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. import os
  2. os.environ['DJANGO_SETTINGS_MODULE'] = 'gravezoneapp.gravezoneapp.settings'
  3.  
  4. import json
  5. from gravezoneapp.main.models import PayPalPayment
  6.  
  7.  
  8.  
  9. def required(field, value):
  10.     s_boolean_true = ['true', '1']
  11.  
  12.     if field == '' or not field:
  13.         result = False
  14.     else:
  15.         result = True
  16.  
  17.     parsed_value = value in s_boolean_true
  18.  
  19.     if parsed_value == result:
  20.         return True
  21.     else:
  22.         return False
  23.  
  24.  
  25. def length_min(field, value):
  26.     if len(field) <= int(value):
  27.         return False
  28.     else:
  29.         return True
  30.  
  31.  
  32. class TornadoRequestWrapper():
  33.  
  34.     validators = {
  35.         'required': required,
  36.         'length_min': length_min
  37.     }
  38.  
  39.     def __init__(self, model):
  40.         self.model = model
  41.  
  42.     def validate(self, request):
  43.  
  44.         try:
  45.             post_data = json.loads(request)
  46.         except Exception as e:
  47.             print e
  48.             print "====="
  49.             return False
  50.         else:
  51.             if 'meta_model' in self.model:
  52.                 self.meta_model = self.model['meta_model']
  53.  
  54.             for field in self.model["fields"]:
  55.                 try:
  56.                     self.__dict__[field['name']] = post_data[field['name']]
  57.                 except KeyError as e:
  58.                     print e, " field is required"
  59.                     return
  60.                 else:
  61.                     if 'validators' in field:
  62.                         for validation, value in field['validators'].iteritems():
  63.                             if not self.validators[validation](post_data[field['name']], value):
  64.                                 print "Validation error:", field['name'], validation
  65.                                 return False
  66.             return True
  67.  
  68.     def api_list(self):
  69.         if self.meta_model:
  70.             res = []
  71.             objects = self.meta_model.objects.all()
  72.             for object in objects:
  73.                 res.append(object.to_json())
  74.  
  75.             return res
  76.  
  77.         else:
  78.             return {}
  79.  
  80.  
  81.  
  82.  
  83. model = {
  84.     "meta_model": PayPalPayment,
  85.     "fields":
  86.     [
  87.         {"name": "username", "validators": {"length_min": "4"}},
  88.         {"name": "password", "validators": {"required": "true"}},
  89.         {"name": "email"}
  90.     ]
  91. }
  92.  
  93.  
  94. query = '{"username": "redrush", "password": "345345345", "email": "redrush85@ukr.net"}'
  95. query1 = '{"username": "redrush", "password": "", "email": "redrush85@ukr.net"}'
  96. query2 = '{"username": "red", "password": "tes_pwd", "email": "redrush85@ukr.net"}'
  97. query3 = 'dfdfgdfgdfgd'
  98.  
  99.  
  100. wrapper = TornadoRequestWrapper(model)
  101.  
  102.  
  103.  
  104. if wrapper.validate(query):
  105.     print "Request is valid"
  106.     print wrapper.username, wrapper.password, wrapper.email
  107.     print wrapper.api_list()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement