Feed error messages through a cors wrapper so that people on other domains can see what's happening.

This commit is contained in:
jakedt 2014-03-17 16:57:35 -04:00
parent 4673f40dd2
commit 3b3d71bfd7
18 changed files with 162 additions and 129 deletions

View file

@ -2,10 +2,9 @@ import logging
import stripe
from flask import request
from flask.ext.restful import abort
from endpoints.api import (resource, nickname, ApiResource, validate_json_request, request_error,
related_user_resource, internal_only)
related_user_resource, internal_only, Unauthorized, NotFound)
from endpoints.api.team import team_view
from endpoints.api.user import User, PrivateRepositories
from auth.permissions import (AdministerOrganizationPermission, OrganizationMemberPermission,
@ -83,13 +82,13 @@ class OrganizationList(ApiResource):
if existing:
msg = 'A user or organization with this name already exists'
return request_error(message=msg)
raise request_error(message=msg)
try:
model.create_organization(org_data['name'], org_data['email'], get_authenticated_user())
return 'Created', 201
except model.DataModelException as ex:
return request_error(exception=ex)
raise request_error(exception=ex)
@resource('/v1/organization/<orgname>')
@ -121,12 +120,12 @@ class Organization(ApiResource):
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
raise NotFound()
teams = model.get_teams_within_org(org)
return org_view(org, teams)
abort(403)
raise Unauthorized()
@nickname('changeOrganizationDetails')
@validate_json_request('UpdateOrg')
@ -135,7 +134,7 @@ class Organization(ApiResource):
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
raise NotFound()
org_data = request.get_json()
if 'invoice_email' in org_data:
@ -145,7 +144,7 @@ class Organization(ApiResource):
if 'email' in org_data and org_data['email'] != org.email:
new_email = org_data['email']
if model.find_user_by_email(new_email):
return request_error(message='E-mail address already used')
raise request_error(message='E-mail address already used')
logger.debug('Changing email address for organization: %s', org.username)
model.update_email(org, new_email)
@ -185,7 +184,7 @@ class OrgPrivateRepositories(ApiResource):
return data
abort(403)
raise Unauthorized()
@resource('/v1/organization/<orgname>/members')
@ -199,7 +198,7 @@ class OrgnaizationMemberList(ApiResource):
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
raise NotFound()
# Loop to create the members dictionary. Note that the members collection
# will return an entry for *every team* a member is on, so we will have
@ -217,7 +216,7 @@ class OrgnaizationMemberList(ApiResource):
return {'members': members_dict}
abort(403)
raise Unauthorized()
@resource('/v1/organization/<orgname>/members/<membername>')
@ -231,7 +230,7 @@ class OrganizationMember(ApiResource):
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
raise NotFound()
member_dict = None
member_teams = model.get_organization_members_with_teams(org, membername=membername)
@ -245,8 +244,8 @@ class OrganizationMember(ApiResource):
member_dict['teams'].append(member.team.name)
if not member_dict:
abort(404)
raise NotFound()
return {'member': member_dict}
abort(403)
raise Unauthorized()