Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 79 additions & 35 deletions src/transifex_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,19 @@ def setup(auth, host=None, headers=None):
_api.setup(host=host, auth=auth, headers=headers)


@_api.register
class User(jsonapi.Resource):
TYPE = "users"


@_api.register
class Organization(jsonapi.Resource):
TYPE = "organizations"


@_api.register
class Team(jsonapi.Resource):
TYPE = "teams"
class Language(jsonapi.Resource):
TYPE = "languages"


@_api.register
Expand All @@ -27,8 +32,8 @@ class Project(jsonapi.Resource):


@_api.register
class Language(jsonapi.Resource):
TYPE = "languages"
class ProjectWebhook(jsonapi.Resource):
TYPE = "project_webhooks"


@_api.register
Expand All @@ -50,12 +55,6 @@ class ResourceString(jsonapi.Resource):
TYPE = "resource_strings"


@_api.register
class ResourceTranslation(jsonapi.Resource):
TYPE = "resource_translations"
EDITABLE = ["strings", 'reviewed', "proofread"]


@_api.register
class ResourceStringsAsyncUpload(jsonapi.Resource):
TYPE = "resource_strings_async_uploads"
Expand Down Expand Up @@ -95,6 +94,72 @@ def upload(cls, resource, content, interval=5):
upload.reload()


@_api.register
class ResourceStringComment(jsonapi.Resource):
TYPE = "resource_string_comments"


@_api.register
class I18nFormat(jsonapi.Resource):
TYPE = "i18n_formats"


@_api.register
class ContextScreenshot(jsonapi.Resource):
TYPE = "context_screenshots"


@_api.register
class ContextScreenshotMap(jsonapi.Resource):
TYPE = "context_screenshot_map"


@_api.register
class OrganizationActivityReportsAsyncDownload(jsonapi.Resource):
TYPE = "organization_activity_reports_async_downloads"


@_api.register
class ProjectActivityReportsAsyncDownload(jsonapi.Resource):
TYPE = "project_activity_reports_async_downloads"


@_api.register
class ResourceActivityReportsAsyncDownload(jsonapi.Resource):
TYPE = "resource_activity_reports_async_downloads"


@_api.register
class ResourceLanguageStats(jsonapi.Resource):
TYPE = "resource_language_stats"


@_api.register
class ResourceTranslation(jsonapi.Resource):
TYPE = "resource_translations"


@_api.register
class ResourceTranslationsAsyncDownload(jsonapi.Resource):
TYPE = "resource_translations_async_downloads"

@classmethod
def download(cls, interval=5, *args, **kwargs):
download = cls.create(*args, **kwargs)
while True:
if hasattr(download, 'errors') and len(download.errors) > 0:
errors = [{'code': e['code'],
'detail': e['detail'],
'title': e['detail'],
'status': '409'}
for e in download.errors]
raise JsonApiException(409, errors)
if download.redirect:
return download.redirect
time.sleep(interval)
download.reload()


@_api.register
class ResourceTranslationsAsyncUpload(Resource):
TYPE = "resource_translations_async_uploads"
Expand Down Expand Up @@ -139,37 +204,16 @@ def upload(cls, resource, content, language, interval=5,
upload.reload()


@_api.register
class User(jsonapi.Resource):
TYPE = "users"


@_api.register
class TeamMembership(jsonapi.Resource):
TYPE = "team_memberships"


@_api.register
class ResourceLanguageStats(jsonapi.Resource):
TYPE = "resource_language_stats"
class Team(jsonapi.Resource):
TYPE = "teams"


@_api.register
class ResourceTranslationsAsyncDownload(jsonapi.Resource):
TYPE = "resource_translations_async_downloads"

@classmethod
def download(cls, interval=5, *args, **kwargs):
download = cls.create(*args, **kwargs)
while True:
if hasattr(download, 'errors') and len(download.errors) > 0:
errors = [{'code': e['code'],
'detail': e['detail'],
'title': e['detail'],
'status': '409'}
for e in download.errors]
raise JsonApiException(409, errors)
if download.redirect:
return download.redirect
time.sleep(interval)
download.reload()
class TmxAsyncdownload(jsonapi.Resource):
TYPE = "tmx_async_downloads"