def post(self, channelid): """Handles a POST to the /channel/{id}/subscriber/ resource which is to add a subscriber to the channel """ # Get channel first channel = Channel.get_by_id(int(channelid)) if channel is None: self.response.out.write("Channel %s not found" % (channelid, )) self.response.set_status(404) return # Add subscriber name = self.request.get('name').rstrip('\n') resource = self.request.get('resource').rstrip('\n') subscriber = Subscriber() subscriber.channel = channel subscriber.name = name subscriber.resource = resource subscriber.put() # Not sure I like this ... re-put()ing if len(subscriber.name) == 0: subscriber.name = 'subscriber-' + str(subscriber.key().id()) subscriber.put() # If we've got here from a web form, redirect the user to the # channel subscriber resource, otherwise return the 201 if self.request.get('subscribersubmissionform'): self.redirect(self.request.path_info) else: self.response.headers['Location'] = self.request.url + str(subscriber.key().id()) + '/' self.response.set_status(201)
def index(request): if request.method == 'POST': email = request.POST['email'] name = request.POST['name'] mobile_number = request.POST["mobile_number"] try: Subscriber.objects.get(email_address=email) user_exists = True except: user_exists = False if user_exists: data = {'status': 0} return JsonResponse(data) if len(mobile_number) == 10: try: number = int(mobile_number) if re.match( r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email): subscriber = Subscriber() subscriber.email_address = email subscriber.name = name subscriber.mobile_number = '+91' + mobile_number subscriber.save() data = { 'status': 1, 'email': email, 'name': name, 'mobile_number': mobile_number } return JsonResponse(data) else: data = {'status': 3} return JsonResponse(data) except ValueError: data = {'status': 2} return JsonResponse(data) else: data = {'status': 2} return JsonResponse(data) return render(request, 'Subscribe/index.html')
def add_subcriber(data, instance_id=""): if instance_id: subscriber = Subscriber.get_by_id(str(instance_id)) else: subscriber = Subscriber() if data["name"]: subscriber.name = data["name"] if data["email"]: subscriber.email = data["email"] if data["fb_id"]: subscriber.fb_id = data["fb_id"] if data["distribution"]: subscriber.distribution = ndb.Key("Distribution", data["distribution"]) subscriber.put() return subscriber