1. 27 Aug, 2020 1 commit
  2. 26 Aug, 2020 4 commits
  3. 21 Aug, 2020 2 commits
  4. 20 Aug, 2020 1 commit
    • Joseph Axisa's avatar
      RunIt positioning and collapsable sections (#295) · d094ccc5
      Joseph Axisa authored
      
      * Positioned RunIt and made it collapsable
      
      * Bumped @looker/components to 0.9.11
      
      * Added CollapserCard component for collapsing sections
      
      * Made method documentation collapsable
      
      * Made reference section collapsable
      
      * RunIt and Method docs take equal space when RunIt is expanded
      
      - adjusted debounce logic for search to improve responsiveness
      - stand-alone API Explorer now uses https again so OAuth works
      
      * Fixed tests
      
      * Refactor CollapserCard to use Accordion
      
      * CollapserCard tests
      
      * count methods instead of remapping
      
      * Add doc comments
      
      Co-authored-by: default avatarJohn Kaster <kaster@google.com>
      d094ccc5
  5. 19 Aug, 2020 1 commit
  6. 17 Aug, 2020 1 commit
    • John Kaster's avatar
      Create a RunIt provider for both extension and stand-alone mode (#294) · 96e5affe
      John Kaster authored
      
      ## Working runit for extensions and standalone
      
      Key points are:
      
      -  Wrapped ApiExplorer in
        - StandaloneApiExplorer
        - ExtensionApiExplorer (this is renamed ApiExplorerProvider which on further examination determined not to be a provider in that it did not create a context)
      - The ApiExplorer wrappers pass in a configurator. This configurator for standalone uses local storage, the configurator for extension uses in memory (but could use sdk localstorage)
      - The extension wrapper passes in the sdk and the sdk is now passed down.
      - The RunIt performance panel is hidden for the extension API version until we provide performance metrics in the Extension SDK 
      
      Co-authored-by: default avatarBryn Ryans <bryn.ryans@looker.com>
      Co-authored-by: default avatarJoseph Axisa <jax@looker.com>
      96e5affe
  7. 14 Aug, 2020 3 commits
  8. 13 Aug, 2020 4 commits
    • John Kaster's avatar
      Cleaned up the performance tracker, added post-processing metrics (#287) · c4c2ab5a
      John Kaster authored
      * Table layout generally looks much better
      * Zeroed the scale for the timeline chart
      * Corrected the relative start time calculation for post-processing
      * Hid ticks at the bottom of the Google Charts timeline graph (issue w/ timeline chart)
      
      Co-authored-by: Bryn Ryans 
      c4c2ab5a
    • Joel Dodge's avatar
      Python SDK: enable models as dictionaries (#289) · ada7ec0f
      Joel Dodge authored
      The python SDK now accepts dictionaries as method bodies in addition to
      the original model class instances. E.g. these are equivalent:
      
      ```
      sdk.create_user({"first_name": "Jane", "last_name": "Smith"})
      sdk.create_user(models.Writeuser(first_name="Jane", last_name="Smith"))
      ```
      
      Note: static type checking fails on the first example but the assumption
      is that users who opt for that form are not interested in type safety
      
      Additionally, model class instances returned by the API act like
      dictionaries. So you can do this:
      
      ```
      me = sdk.me()
      me["locale"] = "uk"
      sdk.update_user(me["id"], me)
      ```
      
      Note: the SDK will not do anything to prevent sending read-only
      properties - the caller is responsible for the API's behavior in such
      cases.
      
      The dictionary-like behavior of model class instances is nearly
      complete. `popitem()`, `clear()`, and `copy()` are the only methods not
      supported. Another difference is setting a nested child property
      to a dictionary: under the hood that gets converted to
      the appropriate model instance and no reference to the original
      dictionary is kept. The following demonstrates this:
      
      ```
      my_email = {"email": "jane.smith@example.com"}
      me = sdk.me()
      me["credentials_api3"] = my_email
      my_email["email"] = "jane.smith@foo.com"
      print(me["credentials_api3"]["email"])  # jane.smith@example.com
      me["credentials_api3"]["email"] = "jane.smith@foo.com"
      print(me["credentials_api3"]["email"])  # jane.smith@example.com
      ```
      (unrealistic example as the Looker API does not support updating email
       address via update_user)
      ada7ec0f
    • Kalen Petersen's avatar
      Merge pull request #291 from looker-open-source/kap/java-integration · ee035dd7
      Kalen Petersen authored
      Fixes to support embedding in other projects
      ee035dd7
    • Kalen Petersen's avatar
      Fixes to support embedding in other projects · b89ee0c0
      Kalen Petersen authored
      This defines a project group and name which are necesssary so that the
      kotlin sdk may be accessed as a project.  Until we have the project
      published to a package distribution system, this allows us to use a
      Gradle Source Dependency [1] to embed the project.
      
      Also changes a few `compile` dependencies to their newer versions to
      remove deprecation warnings from gradle.
      
      [1] https://blog.gradle.org/introducing-source-dependencies
      b89ee0c0
  9. 12 Aug, 2020 2 commits
  10. 08 Aug, 2020 1 commit
  11. 07 Aug, 2020 1 commit
    • John Kaster's avatar
      Login form and OAuth updates for TS SDK (#285) · 71082d4e
      John Kaster authored
      When the user sees the RunIt section of API Explorer in the stand-alone version, they will see:
      
      - The configuration form if server urls are not available in local or session storage
      
      - Then, if the user is not authenticated, a Login button that will start OAuth
      
      - Finally, the user will see the input form with the Run button for the endpoint
      
      This also updates the Typescript SDK OAuthSession for the base64 encoding version
      71082d4e
  12. 03 Aug, 2020 1 commit
  13. 31 Jul, 2020 2 commits
    • Joseph Axisa's avatar
      ApiExplorer: Refactored DocResponses according to design spec (#283) · 82e4a933
      Joseph Axisa authored
      * Cleaned up responses in DocResponse
      
      * MethodScene utility tests
      
      * More DocResponse cleanup
      
      * Bumped @looker/components to 0.9.7 for Tabs to scroll for overflow
      
      * Renamed DocResponse to DocResponses and moved it to global components folder
      
      * Added response utilities and tests
      82e4a933
    • Joel Dodge's avatar
      Python SDK safe enum deserialization (#282) · 16f0b2eb
      Joel Dodge authored
      Prior to this change python SDK would raise when the API returned an
      invalid enum value. Given an enum type of `MyAPIEnum` and an invalid
      value of `""` this error would be raised
      
      `ValueError: '' is not a valid MyAPIEnum`
      
      Now it will deserialize to `MyAPIEnum.invalid_api_enum_value`
      
      Side note: I really wanted to but was unable to dynamically modify the
      `MyAPIEnum.invalid_api_enum_value` enum member value to be the actual
      invalid value returned by the API. So
      `MyAPIEnum.invalid_api_enum_value.value` will always be
      `"invalid_api_enum_value"`
      16f0b2eb
  14. 27 Jul, 2020 2 commits
  15. 26 Jul, 2020 1 commit
  16. 24 Jul, 2020 6 commits
  17. 22 Jul, 2020 1 commit
  18. 21 Jul, 2020 1 commit
  19. 20 Jul, 2020 1 commit
  20. 17 Jul, 2020 2 commits
    • Joseph Axisa's avatar
      TryIt: Restructured, eliminated api-explorer dependencies and added comments (#266) · 9c9c6dae
      Joseph Axisa authored
      * Removed unnecessary code highlighting utilities
      
      * Moved ShowResponse and its utilities into own directory
      
      * Moved RequestForm and its utilities into own sub directory
      
      * Updated all index files accordingly
      
      * Listed lodash as a dependency api-explorer and try-it
      
      * Made type and location in TryItInput strongly typed
      - This made the test in requestUtils about a bogus TryItInput location redundant
      
      * Moved CodeStructure into own directory
      
      * Moved TryItDSK into global utils folder
      
      * Fixed broken TryIt tests
      
      * Moved MethodBadge into TryIt, thus eliminating all ties from try-it to api-explorer
      
      * Fixed MethodBadge test. More work to be done on this component in a separate PR
      
      * bumped @looker/components to 0.9.6
      9c9c6dae
    • Luke Bowerman's avatar
      Refactor MethodBadge to be a simple Styled Component (#265) · b2157226
      Luke Bowerman authored
      Should correct issues with Tooltip reference passing and makes the
      component simpler in-general.
      
      - Used minWidth from styled-system to remove single-use prop
      - Used typographProps from @looker/design-tokens to leverage standard
      typography props
      b2157226
  21. 16 Jul, 2020 2 commits
    • John Kaster's avatar
      Generating methods and streams by tag then method (#264) · 2b9b2823
      John Kaster authored
      
      - tags are listed alphabetically
      - methods are listed in natural order
      - fixed a c# reserved word in http calls also
      - Typescript, Kotlin have region folding in IntelliJ
      - C# has region folding in Rider
      - Swift has no region folding at all, contradicting documentation on `// MARK`
      - Black reformats `#region` and `#endregion` to `# region` and `# endregion`
        - IntelliJ doesn't detect either version of region folding documented for Python
        - Maybe only PyCharm supports it
      - Updated SDK code to Looker 7.12's spec
      
      Co-authored-by: default avatarJoseph Axisa <jax@looker.com>
      2b9b2823
    • Joseph Axisa's avatar
      production build configs for api-explorer and extension-api-explorer packages (#261) · c10721fb
      Joseph Axisa authored
      * Removed package babel.config.js and pointed webpack to the root one
      
      * Made base webpack config take a packagePath parameter and moved it to the monorepo root
      
      * Added webpack prod/dev build configs for api-explorer and extension-api-explorer packages
      - utilized by the 'package' script in the respective package.json files 
      - Also removed superfluous --mode=production webpack cli argument. The mode option in the config file achieves the same.
      - https://www.npmjs.com/package/webpack-merge
      
       - Maybe we can use this for extending/merging webpack configs.
      
      * Extended and reused the root jest config in api-explorer and try-it packages
      - This allows us to run just the api explorer package tests
      - Additional arguments passed to the jest cmd were replaced by the `testMatch` property defined in the local jest config.
      - Completely removing the jest config from api-explorer causes yarn to run all tests because the rootDir becomes the directory containing the config file and it uses the "testMatch" property defined in there.
      - The same pattern can be followed in all other workspaces: 1) extend base jest config, 2) explicitly assign rootDir 3) define the testMatch property
      
      * Addressed eslint config rule overrides
      - The pre-commit hook seems to be working as intended now.
      
      * Added a no-var-requires override for js files
      
      * Cleaned up package.json from duplicates already existing in root package.json
      
      * Sorted dependencies/devDependencies
      
      Co-authored-by: default avatarJohn Kaster <johnk@looker.com>
      c10721fb