~mmcg069/software-center/rnr-onhover-display-footer-links

« back to all changes in this revision

Viewing changes to softwarecenter/backend/rnrclient_pristine.py

  • Committer: Matthew McGowan
  • Date: 2011-03-22 12:12:42 UTC
  • mfrom: (1354.53.61 software-center)
  • Revision ID: matthew.joseph.mcgowan@gmail.com-20110322121242-uoiddw6x1dnwfeo9
merge w trunk and resolve

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
"""
4
4
 
5
5
from urllib import quote_plus
6
 
from piston_mini_client import (PistonAPI, PistonResponseObject,
7
 
    PistonSerializable, returns_json, returns_list_of)
 
6
from piston_mini_client import (
 
7
    PistonAPI,
 
8
    PistonResponseObject,
 
9
    PistonSerializable,
 
10
    returns,
 
11
    returns_json,
 
12
    returns_list_of,
 
13
    )
8
14
from piston_mini_client.validators import validate_pattern, validate
9
15
 
10
16
# These are factored out as constants for if you need to work against a
12
18
PUBLIC_API_SCHEME = 'http'
13
19
AUTHENTICATED_API_SCHEME = 'https'
14
20
 
 
21
 
15
22
class ReviewRequest(PistonSerializable):
16
23
    """A review request.
17
24
 
90
97
    @validate_pattern('distroseries', r'\w+', required=False)
91
98
    @validate_pattern('version', r'[-\w+.:~]+', required=False)
92
99
    @validate_pattern('packagename', r'[a-z0-9.+-]+')
93
 
    @validate('appname', basestring, required=False)
 
100
    @validate('appname', str, required=False)
94
101
    @validate('page', int, required=False)
95
102
    @returns_list_of(ReviewDetails)
96
103
    def get_reviews(self, packagename, language='any', origin='any',
101
108
        particular app, language, origin, distroseries or version.
102
109
        """
103
110
        if appname:
104
 
            appname = quote_plus(';' + unicode(appname))
105
 
        return self._get('%s/%s/%s/%s/%s%s/page/%s/' % (language, origin,
106
 
            distroseries, version, packagename, appname, page),
 
111
            appname = quote_plus(';' + appname)
 
112
        return self._get('reviews/filter/%s/%s/%s/%s/%s%s/page/%s/' % (
 
113
            language, origin, distroseries, version, packagename,
 
114
            appname, page),
107
115
            scheme=PUBLIC_API_SCHEME)
108
116
 
 
117
    @validate('review_id', int)
 
118
    @returns(ReviewDetails)
 
119
    def get_review(self, review_id):
 
120
        """Fetch a particular review via its id."""
 
121
        return self._get('reviews/%s/' % review_id)
 
122
 
109
123
    @validate('review', ReviewRequest)
110
 
    @returns_json
 
124
    @returns(ReviewDetails)
111
125
    def submit_review(self, review):
112
126
        """Submit a rating/review."""
113
127
        return self._post('reviews/', data=review,