Navigation Menu

Skip to content

Commit

Permalink
Need to stop coding doing some horrible non-OO stuff that will need t…
Browse files Browse the repository at this point in the history
…o be refactored. Done for the night
  • Loading branch information
arfrank committed Nov 10, 2010
1 parent fd429bc commit e536e83
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 19 deletions.
57 changes: 54 additions & 3 deletions handlers/main.py
Expand Up @@ -25,7 +25,7 @@


from libraries.gaesessions import get_current_session from libraries.gaesessions import get_current_session


from models import accounts, phone_numbers, calls from models import accounts, phone_numbers, calls, messages


from helpers import application from helpers import application


Expand Down Expand Up @@ -142,8 +142,59 @@ def get(self,Sid):


@webapp_decorator.check_logged_in @webapp_decorator.check_logged_in
def post(self,Sid): def post(self,Sid):
ALLOWED_PARAMETERS = ['From','Body','FromCity','FromState','FromZip','FromCounty','ToCity','ToState','ToZip','ToCounty'] self.data['PhoneNumber'] = phone_numbers.Phone_Number.all().filter('AccountSid = ',self.data['Account'].Sid).filter('Sid = ',Sid).get()

if self.data['PhoneNumber'] is not None:
REQUIRED = ['From','Body']
ALLOWED_PARAMETERS = ['FromCity','FromState','FromZip','FromCounty','ToCity','ToState','ToZip','ToCounty']
Valid = True
Any = False
Blank = False
for param in REQUIRED:
if self.request.get(param,'') == '':
Valid = False
for param in ALLOWED_PARAMETERS:
if self.request.get(param,'') != '':
Any = True
else:
Blank = True
if Any and Blank:
Valid = False
if Valid:
logging.info(self.data['PhoneNumber'].PhoneNumber)
Message, Valid, self.data['TwilioCode'],self.data['TwilioMsg'] = messages.Message.new(
To = self.data['PhoneNumber'].PhoneNumber,
From = self.request.get('From'),
Body = self.request.get('Body'),
request = self.request,
AccountSid = self.data['Account'].Sid,
Direction = 'incoming',
Status = 'sent'
)
if Valid:
Message.put()
Payload = Message.get_dict()
#This is some really really bad bad form processing
Payload = {}
for param in ALLOWED_PARAMETERS:
Payload[param] = self.request.get(param)
#urlfetch.fetch(url,method)
self.redirect('/phone-numbers/'+self.data['PhoneNumber'].Sid)
logging.info('URL FETCHING THINGS!')
else:
logging.info('error')
logging.info(self.data['TwilioCode'])
self.data['Arguments'] = {}
for key in self.request.arguments():
self.data['Arguments'][key] = self.request.get(key,'')
logging.info(self.data['Arguments'])
FakeSms.get(self,Sid)
else:
self.data['Arguments'] = {}
for key in self.request.argument():
self.data['Arguments'][key] = self.request.get(key,'')
FakeSms.get(self,Sid)
else:
self.redirect('/phone-numbers')
class FakeVoice(webapp.RequestHandler): class FakeVoice(webapp.RequestHandler):
""" """
Parameter Description Parameter Description
Expand Down
3 changes: 2 additions & 1 deletion models/messages.py
Expand Up @@ -19,6 +19,7 @@ class Message(base.CommonModel):
Price = db.FloatProperty() Price = db.FloatProperty()
StatusCallback = db.StringProperty() StatusCallback = db.StringProperty()


"""
@classmethod @classmethod
def new(cls, request, AccountSid, **kwargs): def new(cls, request, AccountSid, **kwargs):
property_dictionary = {} property_dictionary = {}
Expand All @@ -40,7 +41,7 @@ def new(cls, request, AccountSid, **kwargs):
), True, 0, '' ), True, 0, ''
else: else:
return '', False, TwilioCode, TwilioMsg return '', False, TwilioCode, TwilioMsg

"""
@classmethod @classmethod
def new_Sid(self): def new_Sid(self):
return 'SM'+sha256(str(random())).hexdigest() return 'SM'+sha256(str(random())).hexdigest()
Expand Down
2 changes: 0 additions & 2 deletions templates/base.html
Expand Up @@ -54,8 +54,6 @@
.error{ .error{
background:#ee9999; background:#ee9999;
margin-right:20px; margin-right:20px;
}
#Additional,#Phone,#Textarea{
padding:10px; padding:10px;
} }
.hide{ .hide{
Expand Down
36 changes: 23 additions & 13 deletions templates/fake-sms.html
Expand Up @@ -15,6 +15,14 @@ <h1 id="account_information">Fake an Inbound SMS</h1>
<div id="content"> <div id="content">
<h2>Phone Number - {{data.PhoneNumber.PhoneNumber}}</h2> <h2>Phone Number - {{data.PhoneNumber.PhoneNumber}}</h2>
{% if data.PhoneNumber.SmsUrl %} {% if data.PhoneNumber.SmsUrl %}
{% if data.TwilioCode %}
<p class="error">
An error has occurred.<br>
{{data.TwilioCode}}<br>
{{data.TwilioMsg}}

</p>
{% endif %}
<p id="Additional" class="error hide"> <p id="Additional" class="error hide">
In order to submit Additional Parameters, all of them must be valid. In order to submit Additional Parameters, all of them must be valid.
</p> </p>
Expand All @@ -29,45 +37,46 @@ <h2>Phone Number - {{data.PhoneNumber.PhoneNumber}}</h2>
Sms Fallback Url: {{data.PhoneNumber.SmsFallbackUrl}} - Method: {{data.PhoneNumber.SmsFallbackMethod }} Sms Fallback Url: {{data.PhoneNumber.SmsFallbackUrl}} - Method: {{data.PhoneNumber.SmsFallbackMethod }}
<form action="/phone-numbers/sms/{{data.PhoneNumber.Sid}}" method="POST" accept-charset="utf-8"> <form action="/phone-numbers/sms/{{data.PhoneNumber.Sid}}" method="POST" accept-charset="utf-8">
<p> <p>
<label for="From">From</label><input id="phone_number" name="From" value="+1"> <label for="From">From</label><input id="phone_number" name="From" value="{% if data.Arguments.From %}{{data.Arguments.From}}{% else %}+1{% endif %}">
</p> </p>
<p> <p>
<label for="To">To</label> {{data.PhoneNumber.PhoneNumber}} <label for="To">To</label> <input type="hidden" name="To" value="{{data.PhoneNumber.PhoneNumber}}" id="To">{{data.PhoneNumber.PhoneNumber}}
</p> </p>
<p> <p>
<label for="Body">Body</label> <textarea name="Body" rows="8" cols="40"></textarea> <label for="Body">Body</label> <textarea name="Body">{% if data.Arguments.Body %}{{data.Arguments.Body}}{% endif %}</textarea>
</p> </p>
<p> <p>
<label for="ApiVersion">ApiVersion</label> 2010-04-01 <label for="ApiVersion">ApiVersion</label> 2010-04-01
</p> </p>
<h3>Additional Parameters</h3> <h3>Additional Parameters</h3>
<p> <p>
<label for="FromCity">From City</label><input class="Additional" name="FromCity" value=""> <label for="FromCity">From City</label><input class="Additional" name="FromCity" value="{% if data.Arguments.FromCity %}{{data.Arguments.FromCity}}{% endif %}">
</p> </p>
<p> <p>
<label for="FromState">From State</label><input class="Additional" name="FromState" value=""> <label for="FromState">From State</label><input class="Additional" name="FromState" value="{% if data.Arguments.FromState %}{{data.Arguments.FromState}}{% endif %}">
</p> </p>
<p> <p>
<label for="FromZip">From Zip</label><input class="Additional" name="FromZip" value=""> <label for="FromZip">From Zip</label><input class="Additional" name="FromZip" value="{% if data.Arguments.FromZip %}{{data.Arguments.FromZip}}{% endif %}">
</p> </p>
<p> <p>
<label for="FromCountry">From Country</label><input class="Additional" name="FromCountry" value=""> <label for="FromCountry">From Country</label><input class="Additional" name="FromCountry" value="{% if data.Arguments.FromCountry %}{{data.Arguments.FromCountry}}{% endif %}">
</p> </p>


<p> <p>
<label for="ToCity">To City</label><input class="Additional" name="ToCity" value=""> <label for="ToCity">To City</label><input class="Additional" name="ToCity" value="{% if data.Arguments.ToCity %}{{data.Arguments.ToCity}}{% endif %}">
</p> </p>
<p> <p>
<label for="ToState">To State</label><input class="Additional" name="ToState" value=""> <label for="ToState">To State</label><input class="Additional" name="ToState" value="{% if data.Arguments.ToState %}{{data.Arguments.ToState}}{% endif %}">
</p> </p>
<p> <p>
<label for="ToZip">To Zip</label><input class="Additional" name="ToZip" value=""> <label for="ToZip">To Zip</label><input class="Additional" name="ToZip" value="{% if data.Arguments.ToZip %}{{data.Arguments.ToZip}}{% endif %}">
</p> </p>
<p> <p>
<label for="ToCountry">To Country</label><input class="Additional" name="ToCountry" value=""> <label for="ToCountry">To Country</label><input class="Additional" name="ToCountry" value="{% if data.Arguments.ToCountry %}{{data.Arguments.ToCountry}}{% endif %}">
</p>
<p>
<input type="submit" value="Send SMS">
</p> </p>

<p><input type="submit" value="Send SMS"></p>
</form> </form>
{% else %} {% else %}
You must set a SMS Url before inbound calls can be received. You must set a SMS Url before inbound calls can be received.
Expand All @@ -85,6 +94,7 @@ <h3>Additional Parameters</h3>
phone_number.val('+1'+pn); phone_number.val('+1'+pn);
return true; return true;
}else{ }else{
phone_number.val('+'+pn);
return false; return false;
} }
} }
Expand Down

0 comments on commit e536e83

Please sign in to comment.