1.0.5 • Published 4 years ago

fractal-format-protocol v1.0.5

Weekly downloads
4
License
ISC
Repository
-
Last release
4 years ago

Fractal Protocol Format

npm.io

##Instalation

####Using NPM

$ npm i fractal-format-protocol


##API

Constuctor()

KeyTypeDescription
instancesobjectObject of Fractal (Vue.js) instances (components). Ex: instancesclass
WebSocketClientobjectObject of WebSocket
httpClientobjectClass of Axios
httpBaseUrlstringFractal server base url. Ex: "https://fractal.tools"

Send()

KeyTypeDescription
methodstringget / post / ws
urlstringRequest route
pathstringService path
classstringClass name of instance (service)
objectstringObject name of instance (service)
functionstringFunction name of instance (service)
dataobjectRequest params / body / payload

##Usage ###Store.js #####initialize

import Format from 'fractal-format-protocol';
import Axios from 'axios';
const HTTP_BASE_URL = "https://fractal.tools";
const WEB_SOCKET_ENDPOINT = "wss://fractal.tools/ws"
const ws = new WebSocket(WEB_SOCKET_ENDPOINT);


const store = {
	state: {
		instances: [];
	},
	
	mutations: {
		setFormat: (state) => {
			const format = new Format({
				WebSocketClient: ws,
				httpClient: Axios,
				httpBaseUrl: HTTP_BASE_URL,
				instances: state.instances
			});
			state.format = format;
		}
	},
	
	actions: {
		onAppLoad: (context, payload) => {
			context.commit("setFormat");
		}
	}
}

#####Send request for charts

const store = {
	getters: {
		getInstance: state => payload => {
			if(state.instances[payload.class] 
			&& state.instances[payload.class][payload.object])
				return state.instances[payload.class][payload.object];
			else
				return null;
		}
	},
	
	actions: {
		getChart: (context, payload) => {
			const dateRangeComponent = context.getters.getInstance({
				class: "DateRange",
				object: "dateRange1"
			});
			const dropDownComponent = context.getters.getInstance({
				class: "DropDown",
				object: "dropDown5"
			});
			
			const dateRange = dateRangeComponent.getValue;
			const filters = dropDownComponent.getvalue;
			
			context.state.format.send({
				method: "post",
				url: "trends/chart",
				path: "d1/d2",
				class: "AnotherBackendService",
				object: "someObject",
				function: "trends/chart",
				data: {
					dateRange,
					filters
				}
			})
		}
	}
}

###End

1.0.5

4 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago