Changeset View
Changeset View
Standalone View
Standalone View
swh/graphql/resolvers/resolvers.py
Show All 30 Lines | |||||
snapshot: ObjectType = ObjectType("Snapshot") | snapshot: ObjectType = ObjectType("Snapshot") | ||||
snapshot_branch: ObjectType = ObjectType("Branch") | snapshot_branch: ObjectType = ObjectType("Branch") | ||||
revision: ObjectType = ObjectType("Revision") | revision: ObjectType = ObjectType("Revision") | ||||
release: ObjectType = ObjectType("Release") | release: ObjectType = ObjectType("Release") | ||||
directory: ObjectType = ObjectType("Directory") | directory: ObjectType = ObjectType("Directory") | ||||
directory_entry: ObjectType = ObjectType("DirectoryEntry") | directory_entry: ObjectType = ObjectType("DirectoryEntry") | ||||
search_result: ObjectType = ObjectType("SearchResult") | search_result: ObjectType = ObjectType("SearchResult") | ||||
binary_string: ObjectType = ObjectType("BinaryString") | binary_string: ObjectType = ObjectType("BinaryString") | ||||
date_info: ObjectType = ObjectType("DateInfo") | |||||
branch_target: UnionType = UnionType("BranchTarget") | branch_target: UnionType = UnionType("BranchTarget") | ||||
release_target: UnionType = UnionType("ReleaseTarget") | release_target: UnionType = UnionType("ReleaseTarget") | ||||
directory_entry_target: UnionType = UnionType("DirectoryEntryTarget") | directory_entry_target: UnionType = UnionType("DirectoryEntryTarget") | ||||
search_result_target: UnionType = UnionType("SearchResultTarget") | search_result_target: UnionType = UnionType("SearchResultTarget") | ||||
# Node resolvers | # Node resolvers | ||||
# A node resolver should return an instance of BaseNode | # A node resolver should return an instance of BaseNode | ||||
▲ Show 20 Lines • Show All 245 Lines • ▼ Show 20 Lines | |||||
@binary_string.field("text") | @binary_string.field("text") | ||||
def binary_string_text_resolver(obj, *args, **kw): | def binary_string_text_resolver(obj, *args, **kw): | ||||
return obj.decode(utils.ENCODING, "replace") | return obj.decode(utils.ENCODING, "replace") | ||||
@binary_string.field("base64") | @binary_string.field("base64") | ||||
def binary_string_base64_resolver(obj, *args, **kw): | def binary_string_base64_resolver(obj, *args, **kw): | ||||
return utils.get_b64_string(obj) | return utils.get_b64_string(obj) | ||||
@date_info.field("date") | |||||
def date_info_date_resolver(obj, *args, **kw): | |||||
# This will be serialised as a DateTime Scalar | |||||
return obj | |||||
@date_info.field("seconds") | |||||
def date_info_seconds_resolver(obj, *args, **kw): | |||||
# obj is a TimestampWithTimezone obj | |||||
return obj.timestamp.seconds | |||||
jayeshv: @vlorentz changed this to use a timestamp instead of seconds and microseconds. What do you… | |||||
Not Done Inline ActionsUsing floats loses precision for very high or low timestamps; but I guess that's fine vlorentz: Using floats loses precision for very high or low timestamps; but I guess that's fine | |||||
@date_info.field("microseconds") | |||||
def date_info_micro_seconds_resolver(obj, *args, **kw): | |||||
return obj.timestamp.microseconds | |||||
@date_info.field("offset") | |||||
def date_info_offset_resolver(obj, *args, **kw): | |||||
return obj.offset_bytes |
@vlorentz changed this to use a timestamp instead of seconds and microseconds. What do you think?