示例#1
0
    def post_image(self, spot_id, image):
        url = "api/v1/spot/%s/image" % spot_id
        implementation = Spotseeker_DAO().get_implementation()

        if implementation.is_mock():
            response = Spotseeker_DAO().putURL(url, {})
            content = response.data
            return content
        else:
            try:
                headers = {"X-OAuth-User": settings.OAUTH_USER}
                auth = OAuth1(settings.SPOTSEEKER_OAUTH_KEY,
                              settings.SPOTSEEKER_OAUTH_SECRET)
                full_url = settings.RESTCLIENTS_SPOTSEEKER_HOST + "/" + url
                files = {'image': ('image.jpg', image)}

                response = requests.post(full_url,
                                         files=files,
                                         auth=auth,
                                         headers=headers)
                if response.status_code != 201:
                    raise DataFailureException(url, response.status_code,
                                               response.content)
            except AttributeError:
                raise NotConfigured("must set OAUTH_ keys in settings")
示例#2
0
    def _get_image(self, image_app_type, parent_id, image_id, width=None):
        if width is not None:
            url = "/api/v1/%s/%s/image/%s/thumb/constrain/width:%s" % (
                image_app_type, parent_id, image_id, width)
        else:
            url = "/api/v1/%s/%s/image/%s" % (image_app_type, parent_id,
                                              image_id)
        implementation = Spotseeker_DAO().get_implementation()
        if implementation.is_mock():
            response = Spotseeker_DAO().getURL(url)
            content = response.data
        else:
            response = Spotseeker_DAO().getURL(url)
            content = response.data

        return response, content
示例#3
0
    def get_spot_by_id(self, spot_id):
        self._validate_spotid(spot_id)

        url = "/api/v1/spot/%s" % spot_id
        response = Spotseeker_DAO().getURL(url)

        if response.status != 200:
            raise DataFailureException(url, response.status, response.data)
        return self._spot_from_data(json.loads(response.data.decode('utf-8')))
示例#4
0
    def get_building_list(self, campus, app_type=None):
        url = "/api/v1/buildings?extended_info:campus=" + campus
        if app_type:
            url += "&extended_info:app_type=" + app_type

        response = Spotseeker_DAO().getURL(url)

        if response.status != 200:
            raise DataFailureException(url, response.status, response.data)
        return json.loads(response.data.decode('utf-8'))
示例#5
0
    def delete_item_image(self, item_id, image_id, etag):
        url = "/api/v1/item/%s/image/%s" % (item_id, image_id)
        implementation = Spotseeker_DAO().get_implementation()

        if implementation.is_mock():
            response = mock.Mock()
            response.status = 200
        else:
            try:
                headers = {
                    "X-OAuth-User": settings.OAUTH_USER,
                    "If-Match": etag
                }
                response = Spotseeker_DAO().deleteURL(url, headers)
                content = response.data
            except AttributeError:
                raise NotConfigured("Must set OAUTH_USER in settings")
        if response.status != 200:
            raise DataFailureException(url, response.status, content)
示例#6
0
    def all_spots(self):
        url = "/api/v1/spot/all"
        response = Spotseeker_DAO().getURL(url)

        if response.status != 200:
            raise DataFailureException(url, response.status, response.data)

        results = json.loads(response.data.decode('utf-8'))

        spots = self._spots_from_data(results)
        return spots
示例#7
0
    def post_spot(self, spot_json):
        url = "/api/v1/spot"
        implementation = Spotseeker_DAO().get_implementation()

        if implementation.is_mock():
            response = Spotseeker_DAO().postURL(url)
            content = response.data
        else:
            try:
                headers = {
                    "X-OAuth-User": settings.OAUTH_USER,
                    "Content-Type": "application/json"
                }
                response = Spotseeker_DAO().postURL(url, headers, spot_json)
                content = response.data
            except AttributeError:
                raise NotConfigured("Must set OAUTH_USER in settings")

        if response.status != 201:
            raise DataFailureException(url, response.status, content)
        return response
示例#8
0
    def put_spot(self, spot_id, spot_json, etag):
        url = "/api/v1/spot/%s" % spot_id
        implementation = Spotseeker_DAO().get_implementation()

        if implementation.is_mock():
            response = Spotseeker_DAO().putURL(url, {})
            content = response.data
        else:
            try:
                headers = {
                    "X-OAuth-User": settings.OAUTH_USER,
                    "If-Match": etag
                }
                response = Spotseeker_DAO().putURL(url, headers, spot_json)
                content = response.data
            except AttributeError:
                raise NotConfigured("Must set OAUTH_USER in settings")

        if response.status != 200:
            raise DataFailureException(url, response.status, content)
        return response, content
示例#9
0
    def search_spots(self, query_tuple):
        """
        Returns a list of spots matching the passed parameters
        """

        url = "/api/v1/spot?" + urlencode(query_tuple)

        response = Spotseeker_DAO().getURL(url)

        if response.status != 200:
            raise DataFailureException(url, response.status, response.data)
        results = json.loads(response.data.decode('utf-8'))

        return self._spots_from_data(results)