mirror of
https://github.com/openappsec/openappsec.git
synced 2025-06-28 16:41:02 +03:00
32 lines
1007 B
Python
Executable File
32 lines
1007 B
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright 2019-present, GraphQL Foundation
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
from ctypes import *
|
|
from GraphQLParser import *
|
|
|
|
def print_field(field, unused):
|
|
field_name = GraphQLAstField_get_name(field)
|
|
field_name_value = GraphQLAstName_get_value(field_name)
|
|
print 'field : ' + field_name_value
|
|
return 0
|
|
|
|
def main():
|
|
error = POINTER(c_char)()
|
|
ast = graphql_parse_string('query myquery { myfield }', byref(error))
|
|
field_visitor_callbacks = GraphQLAstVisitorCallbacks(visit_field = visit_field_func(print_field))
|
|
graphql_node_visit(ast, pointer(field_visitor_callbacks), None)
|
|
|
|
graphql_node_free(ast)
|
|
|
|
ast = graphql_parse_string('query errorQuery on oops { myfield }', byref(error))
|
|
print 'Example error:', string_at(error)
|
|
graphql_error_free(error)
|
|
if ast:
|
|
print 'BUG: we should have got a null AST back, but we got:', ast
|
|
|
|
if __name__ == '__main__':
|
|
main()
|