refactor: api, os, plugin versions in server store

This commit is contained in:
Zack Spear
2023-07-12 17:56:29 -07:00
committed by Zack Spear
parent 262a085d0c
commit 37fb1a88fe
2 changed files with 37 additions and 6 deletions

View File

@@ -1,3 +1,6 @@
/**
* @todo Check OS and Connect Plugin versions against latest via API every session
*/
import { ServerStateData } from './../types/server';
import { defineStore, createPinia, setActivePinia } from 'pinia';
import {
@@ -40,9 +43,11 @@ export const useServerStore = defineStore('server', () => {
/**
* State
*/
const avatar = ref<string>(''); // @todo potentially move to a user store
const apiKey = ref<string>(''); // @todo potentially move to a user store
const apiVersion = ref<string>('');
const avatar = ref<string>(''); // @todo potentially move to a user store
const config = ref<ServerStateConfigStatus>();
const connectPluginInstalled = ref<ServerconnectPluginInstalled>('');
const csrf = ref<string>(''); // required to make requests to Unraid webgui
const description = ref<string>('');
const deviceCount = ref<number>(0);
@@ -60,7 +65,8 @@ export const useServerStore = defineStore('server', () => {
const license = ref<string>('');
const locale = ref<string>('');
const name = ref<string>('');
const connectPluginInstalled = ref<ServerconnectPluginInstalled>('');
const osVersion = ref<string>('');
const pluginVersion = ref<string>('');
const registered = ref<boolean>();
const regGen = ref<number>(0);
const regGuid = ref<string>('');
@@ -70,6 +76,7 @@ export const useServerStore = defineStore('server', () => {
const uptime = ref<number>(0);
const username = ref<string>(''); // @todo potentially move to a user store
const wanFQDN = ref<string>('');
/**
* Getters
*/
@@ -84,7 +91,9 @@ export const useServerStore = defineStore('server', () => {
const server = computed(():Server => {
return {
apiKey: apiKey.value,
apiVersion: apiVersion.value,
avatar: avatar.value,
connectPluginInstalled: connectPluginInstalled.value,
description: description.value,
deviceCount: deviceCount.value,
email: email.value,
@@ -98,7 +107,8 @@ export const useServerStore = defineStore('server', () => {
license: license.value,
locale: locale.value,
name: name.value,
connectPluginInstalled: connectPluginInstalled.value,
osVersion: osVersion.value,
pluginVersion: pluginVersion.value,
registered: registered.value,
regGen: regGen.value,
regGuid: regGuid.value,
@@ -126,12 +136,15 @@ export const useServerStore = defineStore('server', () => {
break;
}
const server = {
apiVersion: apiVersion.value,
deviceCount: deviceCount.value,
email: email.value,
guid: guid.value,
inIframe: inIframe.value,
keyTypeForPurchase,
locale: locale.value,
osVersion: osVersion.value,
pluginVersion: pluginVersion.value,
registered: registered.value ?? false,
state: state.value,
site: site.value,
@@ -141,6 +154,7 @@ export const useServerStore = defineStore('server', () => {
const serverAccountPayload = computed((): ServerAccountCallbackSendPayload => {
return {
apiVersion: apiVersion.value,
description: description.value,
expireTime: expireTime.value,
flashProduct: flashProduct.value,
@@ -150,6 +164,8 @@ export const useServerStore = defineStore('server', () => {
keyfile: keyfile.value,
lanIp: lanIp.value,
name: name.value,
osVersion: osVersion.value,
pluginVersion: pluginVersion.value,
registered: registered.value ?? false,
regGuid: regGuid.value,
site: site.value,
@@ -161,7 +177,9 @@ export const useServerStore = defineStore('server', () => {
const serverDebugPayload = computed((): Server => {
const payload = {
apiKey: apiKey.value,
apiVersion: apiVersion.value,
avatar: avatar.value,
connectPluginInstalled: connectPluginInstalled.value,
description: description.value,
deviceCount: deviceCount.value,
email: email.value,
@@ -173,7 +191,8 @@ export const useServerStore = defineStore('server', () => {
lanIp: lanIp.value,
locale: locale.value,
name: name.value,
connectPluginInstalled: connectPluginInstalled.value,
osVersion: osVersion.value,
pluginVersion: pluginVersion.value,
registered: registered.value,
regGen: regGen.value,
regGuid: regGuid.value,
@@ -587,8 +606,10 @@ export const useServerStore = defineStore('server', () => {
const setServer = (data: Server) => {
console.debug('[setServer] data', data);
if (typeof data?.apiKey !== 'undefined') apiKey.value = data.apiKey;
if (typeof data?.apiVersion !== 'undefined') apiVersion.value = data.apiVersion;
if (typeof data?.avatar !== 'undefined') avatar.value = data.avatar;
if (typeof data?.config !== 'undefined') config.value = data.config;
if (typeof data?.connectPluginInstalled !== 'undefined') connectPluginInstalled.value = data.connectPluginInstalled;
if (typeof data?.csrf !== 'undefined') csrf.value = data.csrf;
if (typeof data?.description !== 'undefined') description.value = data.description;
if (typeof data?.deviceCount !== 'undefined') deviceCount.value = data.deviceCount;
@@ -602,7 +623,8 @@ export const useServerStore = defineStore('server', () => {
if (typeof data?.license !== 'undefined') license.value = data.license;
if (typeof data?.locale !== 'undefined') locale.value = data.locale;
if (typeof data?.name !== 'undefined') name.value = data.name;
if (typeof data?.connectPluginInstalled !== 'undefined') connectPluginInstalled.value = data.connectPluginInstalled;
if (typeof data?.osVersion !== 'undefined') osVersion.value = data.osVersion;
if (typeof data?.pluginVersion !== 'undefined') pluginVersion.value = data.pluginVersion;
if (typeof data?.registered !== 'undefined') registered.value = data.registered;
if (typeof data?.regGen !== 'undefined') regGen.value = data.regGen;
if (typeof data?.regGuid !== 'undefined') regGuid.value = data.regGuid;

View File

@@ -32,8 +32,10 @@ export type ServerState = 'BASIC'
| undefined;
export interface Server {
apiKey?: string;
apiVersion?: string;
avatar?: string;
config?: ServerStateConfigStatus | undefined;
connectPluginInstalled?: ServerconnectPluginInstalled;
csrf?: string;
description?: string;
deviceCount?: number;
@@ -48,7 +50,8 @@ export interface Server {
license?: string;
locale?: string;
name?: string;
connectPluginInstalled?: ServerconnectPluginInstalled;
osVersion?: string;
pluginVersion?: string;
registered?: boolean;
regGen?: number;
regGuid?: string;
@@ -62,6 +65,7 @@ export interface Server {
}
export interface ServerAccountCallbackSendPayload {
apiVersion?: string;
description?: string;
deviceCount?: number;
expireTime?: number;
@@ -73,6 +77,8 @@ export interface ServerAccountCallbackSendPayload {
lanIp?: string;
locale?: string;
name?: string;
osVersion?: string;
pluginVersion?: string;
registered: boolean;
regGen?: number;
regGuid?: string;
@@ -84,12 +90,15 @@ export interface ServerAccountCallbackSendPayload {
export type ServerKeyTypeForPurchase = 'Basic'|'Plus'|'Pro'|'Trial';
export interface ServerPurchaseCallbackSendPayload {
apiVersion?: string;
deviceCount: number;
email: string;
guid: string;
inIframe: boolean;
keyTypeForPurchase: ServerKeyTypeForPurchase;
locale: string;
osVersion?: string;
pluginVersion?: string;
registered: boolean;
state: ServerState;
site: string;