예제 #1
0
    def delete(self, environ, params):
        try:
            Controller().checkToken()

            if Controller().getApiType() != 1:
                output.error("Not your api business", 403)

            u = UserFactory.get(params["uid"])
            if not u:
                output.error("user not found", 404)

            uid = params["uid"]

            blobId = BlobFactory.getBlobIds(user=params["uid"], release="published", type="avatar")

            if not len(blobId):
                output.error("avatar not found", 404)

            blobId = blobId.pop()
            BlobFactory.delete(blobId, "published")

            UserFactory.setAvatar(u.uid, False)

            output.success("avatar deleted", 200)
        except Error:
            pass

        return Controller().getResponse(True)
예제 #2
0
    def set(self, environ, params):
        try:
            Controller().checkToken()
            req = Controller().getRequest()
            router = Controller().getRouter()
            u = UserFactory.get(params["uid"])
            if not u:
                output.error("user not found", 404)

            cT = req.headers["Content-Type"] or "application/octet-stream"
            blobId = BlobFactory.getBlobIds(user=params["uid"], release="published", type="avatar")

            if not len(blobId):
                blobId = BlobFactory.insert("avatar", "published", req.body, cT, user=params["uid"])
            else:
                blobId = blobId[0]
                BlobFactory.update(blobId, "avatar", "published", req.body, cT, user=params["uid"])

            UserFactory.setAvatar(u.uid, True)
            resultUrl = router.getRoute(
                "graph.Blob.fetch", {"version": params["version"], "bid": str(blobId), "release": "published"}
            )
            output.success({"url": resultUrl, "blobId": str(blobId)}, 201)
        except Error:
            pass

        return Controller().getResponse(True)