Ejemplo n.º 1
0
    def do_POST(self):
        global store

        print "POST %s" % self.path
        bits = urllib.unquote(self.path).split('/')
        x = None
        if bits[1] == "people":
            clen, pdict = cgi.parse_header(self.headers.getheader('content-length'))
            c = self.rfile.read(int(clen))
            j = simplejson.loads(unicode(c))
            print "POST people: %s" % j
            x = Person.of_dict(j)

        elif bits[1] == 'service':
            clen, pdict = cgi.parse_header(self.headers.getheader('content-length'))
            c = self.rfile.read(int(clen))
            j = simplejson.loads(unicode(c))
            print "POST service: %s" % j
            x = Service.of_dict(j)

        elif bits[1] == 'att':
            clen, pdict = cgi.parse_header(self.headers.getheader('content-length'))
            mime, pdict = cgi.parse_header(self.headers.getheader('content-type'))
            c = self.rfile.read(int(clen))
            print "POST att: %s" % bits[1]
            x = Att.insert(unicode(bits[2]), c, unicode(mime))

        elif bits[1] == 'thing':
            clen, pdict = cgi.parse_header(self.headers.getheader('content-length'))
            c = self.rfile.read(int(clen))
            j = simplejson.loads(unicode(c))
            print "POST thing: %s" % j
            x = Thing.of_dict(j)

        elif bits[1] == 'credential':
            clen, pdict = cgi.parse_header(self.headers.getheader('content-length'))
            c = self.rfile.read(int(clen))
            j = simplejson.loads(unicode(c))
            print "POST credential: %s" % j
            x = Credential.of_dict(j)

        try: store.commit()
        except:
            store = get_store()
            store.commit()

        if x: self.send_response(200)
        else:
            self.send_response(500)

        self.end_headers()