@hoobs/sdk
TypeScript icon, indicating that this package has built-in type declarations

5.0.2 • Public • Published

HOOBS JavaScript SDK for building applications that talk with the HOOBS API.

Installing

HOOBS recommends Yarn. From your project's root run;

yarn add @hoobs/sdk

Or using NPM.

npm install @hoobs/sdk

Usage

First you need to import the SDK

import SDK from "@hoobs/sdk";

Then create an bridge.

const hoobs = SDK();

Authorization Token

The HOOBS SDK manages authorization tokens for you. To do this you need to define the functions used to get and set the token. This is usefull, because it allows you to intergrate the authorization token into your projects state management.

hoobs.config.token.get(() => {
    // fetch and return the stored token
});

hoobs.config.token.set((token) => {
    // store token logic
});

Without this you will not be able to login to the HOOBS API.

Intergrating with Vue

The HOOBS SDK is designed to be used with Vue. To setup the mixin, modify your main.ts|js file. This example uses Vuex for managing the authorization token.

import Vue from "vue";
import Vuex from "vuex";
import SDK from "@hoobs/sdk";

import app from "./app.vue";

Vue.use(Vuex);

const store = new Vuex.Store({
    state: {
        session: "",
        user: {
            permissions: {},
        },
    },

    mutations: {
        "SESSION:SET": (state: { [key: string]: any }, token: string) => {
            state.session = token;

            if (token && token !== "") {
                const user = JSON.parse(atob(token));

                state.user = {
                    id: user.id,
                    name: user.name,
                    username: user.username,
                    permissions: user.permissions || {},
                };
            } else {
                state.user = {
                    permissions: {},
                };
            }
        }
    }
};

const hoobs = SDK();

hoobs.config.token.get(() => store.state.session);
hoobs.config.token.set((token) => { store.commit("SESSION:SET", token); });

Vue.mixin(hoobs.mixin());

new Vue({
    store,
    render: (h) => h(app),
}).$mount("#app");

Now you will be able to access the SDK via this.$hoobs in your components.

<script>
    export default {
        data() {
            return {
                version: "",
            }
        },

        async mounted() {
            this.version = await this.$hoobs.version();
        }
    }
</script>

Documentation

SDK documentation can be found here.
SDK Documentation

Legal

HOOBS and the HOOBS logo are registered trademarks of HOOBS Inc. Copyright (C) 2020 HOOBS Inc. All rights reserved.

Package Sidebar

Install

npm i @hoobs/sdk

Weekly Downloads

7

Version

5.0.2

License

GPL-3.0

Unpacked Size

725 kB

Total Files

188

Last publish

Collaborators

  • pminder
  • pfy
  • mkellsy
  • askovi
  • bobbyslope