Esempio n. 1
0
    def post(self):
        cmd = self.request.arguments.get("cmd", '')
        logging.info("AccountSystem.post[{cmd:%s}]", cmd)

        if cmd == '':

            self.writeasjson({
                "error": "cmd paramenter is required"
            })

        elif cmd == 'add':

            imeis = self.request.arguments.get("imeis")
            # logging.info(' == imeis=%s', repr(imeis))

            results = []

            skeys = [System.imei_to_key(imei) for imei in imeis]
            # logging.info(' == keys=%s', repr(skeys))
            systems = System(key=None, cached=True).find_all(skeys, domain=self.domain)
            # logging.info(' == systems=%s', repr(systems))
            pushAll = []

            for imei in imeis:
                skey = System.imei_to_key(imei)
                if skey in self.account.document["skeys"]:
                    results.append({
                        "result": "already"
                    })
                else:
                    #system = System.get(skey).filter(domain=self.domain)
                    if systems[skey] is None:
                        results.append({
                            "result": "notfound"
                        })
                    else:
                        pushAll.append(skey)
                        results.append({
                            "result": "added",
                            "system": systems[skey]
                        })
            self.account.add_systems(pushAll)

            self.writeasjson({
                "systems": results
            })

        elif cmd == 'sort':

            skeys = self.request.arguments.get("skeys", [])
            # logging.info("skeys = %s" % repr(skeys))
            self.account.sort_systems(skeys)
            self.writeasjson({
                "result": "sorted",
                "skeys": skeys
            })

        else:

            self.writeasjson({
                "error": "cmd must be set"
            })