Skip to content

Commit

Permalink
Add skip option to multi model returning in API
Browse files Browse the repository at this point in the history
  • Loading branch information
samirelanduk committed Sep 19, 2019
1 parent cc97290 commit 8da9652
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion core/schema.py
Expand Up @@ -28,7 +28,7 @@ def process_kwargs(kwargs):

processed = {}
for key, value in kwargs.items():
if key not in ["sort", "first", "last"]:
if key not in ["sort", "skip", "first", "last"]:
key = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", key)
key = re.sub("([a-z0-9])([A-Z])", r"\1_\2", key).lower()
processed[key] = value
Expand Down Expand Up @@ -72,6 +72,7 @@ def generate_args(Model):
args, field, graphene.Boolean, ()
)
args["sort"] = graphene.String()
args["skip"] = graphene.Int()
return args


Expand Down Expand Up @@ -113,6 +114,7 @@ def resolve_coordinate_bonds(self, info, **kwargs):
except AttributeError:
coordinate_bonds = CoordinateBond.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: coordinate_bonds = coordinate_bonds.order_by(kwargs["sort"])
if "skip" in kwargs: coordinate_bonds = coordinate_bonds[kwargs["skip"]:]
return coordinate_bonds


Expand Down Expand Up @@ -154,6 +156,7 @@ def resolve_atoms(self, info, **kwargs):
except AttributeError:
atoms = Atom.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: atoms = atoms.order_by(kwargs["sort"])
if "skip" in kwargs: atoms = atoms[kwargs["skip"]:]
return atoms


Expand Down Expand Up @@ -195,6 +198,7 @@ def resolve_residues(self, info, **kwargs):
except AttributeError:
residues = Residue.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: residues = residues.order_by(kwargs["sort"])
if "skip" in kwargs: residues = residues[kwargs["skip"]:]
return residues


Expand Down Expand Up @@ -236,6 +240,7 @@ def resolve_metals(self, info, **kwargs):
except AttributeError:
metals = Metal.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: metals = metals.order_by(kwargs["sort"])
if "skip" in kwargs: metals = metals[kwargs["skip"]:]
return metals


Expand Down Expand Up @@ -277,6 +282,7 @@ def resolve_chain_interactions(self, info, **kwargs):
except AttributeError:
chaininteractions = ChainInteraction.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: chaininteractions = chaininteractions.order_by(kwargs["sort"])
if "skip" in kwargs: chaininteractions = chaininteractions[kwargs["skip"]:]
return chaininteractions


Expand Down Expand Up @@ -318,6 +324,7 @@ def resolve_zincsites(self, info, **kwargs):
except AttributeError:
zincsites = ZincSite.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: zincsites = zincsites.order_by(kwargs["sort"])
if "skip" in kwargs: zincsites = zincsites[kwargs["skip"]:]
return zincsites


Expand Down Expand Up @@ -359,6 +366,7 @@ def resolve_groups(self, info, **kwargs):
except AttributeError:
groups = Group.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: groups = groups.order_by(kwargs["sort"])
if "skip" in kwargs: groups = groups[kwargs["skip"]:]
return groups


Expand Down Expand Up @@ -400,6 +408,7 @@ def resolve_chains(self, info, **kwargs):
except AttributeError:
chains = Chain.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: chains = chains.order_by(kwargs["sort"])
if "skip" in kwargs: chains = chains[kwargs["skip"]:]
return chains


Expand Down Expand Up @@ -441,6 +450,7 @@ def resolve_chain_clusters(self, info, **kwargs):
except AttributeError:
chainclusters = ChainCluster.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: chainclusters = chainclusters.order_by(kwargs["sort"])
if "skip" in kwargs: chainclusters = chainclusters[kwargs["skip"]:]
return chainclusters


Expand Down Expand Up @@ -479,6 +489,7 @@ def resolve_pdb(self, info, **kwargs):
def resolve_pdbs(self, info, **kwargs):
pdbs = Pdb.objects.filter(**process_kwargs(kwargs))
if "sort" in kwargs: pdbs = pdbs.order_by(kwargs["sort"])
if "skip" in kwargs: pdbs = pdbs[kwargs["skip"]:]
return pdbs


Expand Down

0 comments on commit 8da9652

Please sign in to comment.