Skip to content

Instantly share code, notes, and snippets.

@dcramer
Created August 29, 2017 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcramer/1a7ab8d86da0562e5303bf831db57b85 to your computer and use it in GitHub Desktop.
Save dcramer/1a7ab8d86da0562e5303bf831db57b85 to your computer and use it in GitHub Desktop.
class BaseJobResource(Resource):
def dispatch_request(
self, provider: str, owner_name: str, repo_name: str, build_number: int, job_number: int, *args, **kwargs
) -> Response:
queryset = Job.query.join(Build, Build.id == Job.build_id).join(
Repository, Repository.id == Build.repository_id
).filter(
Repository.provider == RepositoryProvider(provider),
Repository.owner_name == owner_name,
Repository.name == repo_name,
Build.number == build_number,
Job.number == job_number,
)
if self.is_mutation():
queryset = queryset.with_for_update()
job = queryset.first()
if not job:
return self.not_found()
return Resource.dispatch_request(self, job, *args, **kwargs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment