Skip to content

Commit

Permalink
Code optimizations (#31)
Browse files Browse the repository at this point in the history
* added linters to travis

* Revert "added linters to travis"

This reverts commit 257b79f.

* removed unnecessary call to str()

* updated Class names for better clarity

* absolute imports

* adding back @staticmethod
  • Loading branch information
Nils Diefenbach authored and aayush26 committed Nov 26, 2017
1 parent 9ec91cc commit 5543f68
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 14 deletions.
9 changes: 5 additions & 4 deletions pirant/handlers.py
Expand Up @@ -2,16 +2,17 @@
from __future__ import absolute_import, division, print_function
import json
import requests
from pirant.models import RantsResponse, RantResponse, SearchResponse
from pirant.models import MultiRantsResponse, RantResponse, SearchResponse
from pirant.urlbuilder import URLBuilder



class ResponseHandler(object):
"""Handles deserialization of API responses to pirant Response Objects."""

def __init__(self):
"""Initialize the instance."""
self.rants_response = RantsResponse()
self.multi_rants_response = MultiRantsResponse()
self.rant_response = RantResponse()
self.search_response = SearchResponse()

Expand All @@ -24,7 +25,7 @@ def build_response(model, response):

def get_rants_build_response(self, response):
"""Deserialize the given Rants to RantsResponse object."""
return self.build_response(self.rants_response, response)
return self.build_response(self.multi_rants_response, response)

def get_rant_by_id_build_response(self, response):
"""Deserialize the given Rant to RantsResponse object."""
Expand All @@ -37,7 +38,7 @@ def search_rants_by_keyword_build_response(self, response):

def get_collabs_build_response(self, response):
"""Deserialize the given Collabs to RantsResponse object."""
return self.build_response(self.rants_response, response)
return self.build_response(self.multi_rants_response, response)


class RequestHandler(object):
Expand Down
9 changes: 5 additions & 4 deletions pirant/models.py
Expand Up @@ -74,16 +74,17 @@ class Rant(colander.MappingSchema):
c_url = colander.SchemaNode(colander.String(), missing=colander.drop)


class Rants(colander.SequenceSchema):
class MultiRants(colander.SequenceSchema):
""":class:`colander.SequenceSchema` for Images."""

rant = Rant()


class RantsResponse(colander.MappingSchema):
class MultiRantsResponse(colander.MappingSchema):
""":class:`colander.MappingSchema` for RantsResponse objects."""

rants = Rants()
rants = MultiRants()

news = News(missing=colander.drop)
success = colander.SchemaNode(colander.Boolean(), missing=colander.drop)
error = colander.SchemaNode(colander.Boolean(), missing=colander.drop)
Expand Down Expand Up @@ -127,4 +128,4 @@ class SearchResponse(colander.MappingSchema):

success = colander.SchemaNode(colander.Boolean(), missing=colander.drop)
error = colander.SchemaNode(colander.Boolean(), missing=colander.drop)
results = Rants()
results = MultiRants()
12 changes: 7 additions & 5 deletions pirant/urlbuilder.py
Expand Up @@ -26,27 +26,29 @@ def get_rants_url(self, sort, limit, skip):
sort = self.validate_sort_input(sort)
limit = self.validate_int_input(limit)
skip = self.validate_int_input(skip)
return str(self.rants_url % (self.base_url, sort, limit, skip, self.app_version))
return self.rants_url % (self.base_url, sort, limit, skip, self.app_version)

def get_rant_by_id_url(self, rant_id):
"""Generate a request URL to get a rant by its id."""
return str(self.rant_url % (self.base_url, rant_id, self.app_version))
return self.rant_url % (self.base_url, rant_id, self.app_version)


def get_weekly_rant_url(self, sort, skip):
"""Generate a request URL to get the weekly rants."""
sort = self.validate_sort_input(sort)
skip = self.validate_int_input(skip)
return str(self.weekly_rants_url % (self.base_url, sort, skip, self.app_version))
return self.weekly_rants_url % (self.base_url, sort, skip, self.app_version)

def search_rants_by_keywords(self, keyword):
"""Generate a request URL to search rants by keywords."""
return str(self.search_url % (self.base_url, keyword, self.app_version))
return self.search_url % (self.base_url, keyword, self.app_version)

def get_collabs_url(self, skip, limit):
"""Generate a request URL to get available collabs."""
limit = self.validate_int_input(limit)
skip = self.validate_int_input(skip)
return str(self.collabs_url % (self.base_url, self.app_version, skip, limit))
return self.collabs_url % (self.base_url, self.app_version, skip, limit)


def validate_sort_input(self, sort_type):
"""Validate that input for sort has proper type."""
Expand Down
2 changes: 1 addition & 1 deletion tests/test_model.py
Expand Up @@ -119,7 +119,7 @@ class RantsResponseTest(unittest.TestCase):
"""

def setUp(self):
self.rants_response = pirant.models.RantsResponse()
self.rants_response = pirant.models.MultiRantsResponse()
self.test_data = {
'rants': [{
'id': 1234,
Expand Down

0 comments on commit 5543f68

Please sign in to comment.