* draft: first pass at complete schema language generation and factory validator * actually a working validator and fixes to the schema that went uncaught * remove extra spike file * fix formatting file * pr feedback and a little bit of refactoring * fix some types that were erroneously marked as invalid schema * some comments * add jsonschemamixin to interfaces * update changelog * bump version
23 lines
607 B
Python
23 lines
607 B
Python
#
|
|
# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
|
|
#
|
|
|
|
from dataclasses import InitVar, dataclass
|
|
from typing import Any, List, Mapping, Union
|
|
|
|
import requests
|
|
from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
|
|
from dataclasses_jsonschema import JsonSchemaMixin
|
|
|
|
|
|
@dataclass
|
|
class JsonDecoder(Decoder, JsonSchemaMixin):
|
|
"""
|
|
Decoder strategy that returns the json-encoded content of a response, if any.
|
|
"""
|
|
|
|
options: InitVar[Mapping[str, Any]]
|
|
|
|
def decode(self, response: requests.Response) -> Union[Mapping[str, Any], List]:
|
|
return response.json() or {}
|