• Properties

  • Git HTTP https://git.kmx.io/kmx.io/ex_ovh.git
    Git SSH git@git.kmx.io:kmx.io/ex_ovh.git
    Public access ? public
    Description

    Elixir client for the OVH API.

    Users
    thodg
    Tags
    Disk usage 0.00 kB

  • README.md

  • ExOvh Build Status Hex Version Hex docs Deps Status

    ExOvh is an helper library for the elixir language for the Ovh Api. To use the Openstack components of the OVH API, see Openstex

    Project Features

    • A Supervised agent running in the background which stores frequently accessed authentication information.
    • Helper modules for making building requests to the Ovh Api.
    • Request functions to send requests to the Ovh Api.

    Getting started - Step 1: Generating the OVH application key, application secret and consumer key.

    • This may be done manually by going to https://eu.api.ovh.com/createApp/ and following the directions outlined by OVH at their first steps guide.

    • Alternatively, this may be achieved by running a mix task. This saves me a lot of time when generating a new application.

    • Documentation here

    Getting Started - Step 2: Generating the OVH client module for your elixir application

    • The client module (eg AwesomeApp.OvhClient) is the interface for accessing the functions of the ex_ovh API.

    • Documentation here

    Usage

    Examples - Method 1 - Building the queries manually and send the request (my preferred way)

    • GET /me/api/application/#{app_id}

      app_id = "0"
      req = %HTTPipe.Request{
        method: :get,
        url: "/me/api/application/#{app_id}"
      }
      |> MyApp.OvhClient.request!()
    • GET /cloud/project/{serviceName}/storage

      service_name = "service_name"
      req = %HTTPipe.Request{
        method: :get,
        url: "/cloud/project/#{service_name}/storage"
      }s
      |> MyApp.OvhClient.request!()

    Examples - Method 2 - Build the request using provided helper functions and send the request

    Note: Helper functions are only available currently for the /Cloud portion of the OVH API. Eventually, I would like to write a macro to create the queries.

    • GET /cloud/project/{serviceName}/storage

      ExOvh.V1.Cloud.get_containers(service_name) |> ExOvh.request!()
    • For more information See Hex Docs

    Contributing

    • Pull requests welcome.

    Tests

    • Tests have not been written yet.

    TODO

    • [ ] Tests for OVH portion of library
    • [ ] Option to set the application ttl when running ovh mix task.
    • [ ] Add queries for the remainder of the OVH API. (Webstorage CDN (now a deprecated service) and Cloud are the only ones covered so far)
    • [x] Basic examples to be added to readme of usage of the api.
    • [ ] Add macro for building queries.
    • [ ] Write the usage guide - more examples of using the API.
    • [ ] Remove dependency on :calendar if tz info is not required.

    Note

    This is an unofficial client to the OVH api and is not maintained by OVH.

    Licence

    MIT Licence