Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/lib/api/internal/v1/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ models/LcgResponseLegacyDataResponse.ts
models/LegacyEmptyResponse.ts
models/LogEntry.ts
models/LogEntryArrayLegacyDataResponse.ts
models/LogEntryWithHub.ts
models/Login.ts
models/LoginSessionResponse.ts
models/MatchTypeEnum.ts
Expand Down Expand Up @@ -89,6 +90,7 @@ models/ShareInfoArrayLegacyDataResponse.ts
models/SharedDevice.ts
models/SharedShocker.ts
models/ShockerLimits.ts
models/ShockerLogsResponse.ts
models/ShockerModelType.ts
models/ShockerPermLimitPair.ts
models/ShockerPermissions.ts
Expand Down
65 changes: 65 additions & 0 deletions src/lib/api/internal/v1/apis/ShockersApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import type {
ResponseDeviceWithShockersArrayLegacyDataResponse,
ShareCodeInfoArrayLegacyDataResponse,
ShareInfoArrayLegacyDataResponse,
ShockerLogsResponse,
ShockerPermLimitPair,
ShockerWithDeviceLegacyDataResponse,
} from '../models/index';
Expand Down Expand Up @@ -55,6 +56,8 @@ import {
ShareCodeInfoArrayLegacyDataResponseToJSON,
ShareInfoArrayLegacyDataResponseFromJSON,
ShareInfoArrayLegacyDataResponseToJSON,
ShockerLogsResponseFromJSON,
ShockerLogsResponseToJSON,
ShockerPermLimitPairFromJSON,
ShockerPermLimitPairToJSON,
ShockerWithDeviceLegacyDataResponseFromJSON,
Expand All @@ -66,6 +69,11 @@ export interface ShockerEditShockerRequest {
newShocker?: NewShocker;
}

export interface ShockerGetAllShockerLogsRequest {
offset?: number;
limit?: number;
}

export interface ShockerGetShockerByIdRequest {
shockerId: string;
}
Expand Down Expand Up @@ -146,6 +154,22 @@ export interface ShockersApiInterface {
*/
shockerEditShocker(shockerId: string, newShocker?: NewShocker, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<LegacyEmptyResponse>;

/**
*
* @summary Get the logs for all shockers
* @param {number} [offset]
* @param {number} [limit]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ShockersApiInterface
*/
shockerGetAllShockerLogsRaw(requestParameters: ShockerGetAllShockerLogsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ShockerLogsResponse>>;

/**
* Get the logs for all shockers
*/
shockerGetAllShockerLogs(offset?: number, limit?: number, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ShockerLogsResponse>;

/**
*
* @summary Get information about a shocker.
Expand Down Expand Up @@ -414,6 +438,47 @@ export class ShockersApi extends runtime.BaseAPI implements ShockersApiInterface
return await response.value();
}

/**
* Get the logs for all shockers
*/
async shockerGetAllShockerLogsRaw(requestParameters: ShockerGetAllShockerLogsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ShockerLogsResponse>> {
const queryParameters: any = {};

if (requestParameters['offset'] != null) {
queryParameters['offset'] = requestParameters['offset'];
}

if (requestParameters['limit'] != null) {
queryParameters['limit'] = requestParameters['limit'];
}

const headerParameters: runtime.HTTPHeaders = {};

if (this.configuration && this.configuration.apiKey) {
headerParameters["OpenShockToken"] = await this.configuration.apiKey("OpenShockToken"); // ApiToken authentication
}


let urlPath = `/1/shockers/logs`;

const response = await this.request({
path: urlPath,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);

return new runtime.JSONApiResponse(response, (jsonValue) => ShockerLogsResponseFromJSON(jsonValue));
}

/**
* Get the logs for all shockers
*/
async shockerGetAllShockerLogs(offset?: number, limit?: number, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ShockerLogsResponse> {
const response = await this.shockerGetAllShockerLogsRaw({ offset: offset, limit: limit }, initOverrides);
return await response.value();
}

/**
* Get information about a shocker.
*/
Expand Down
164 changes: 164 additions & 0 deletions src/lib/api/internal/v1/models/LogEntryWithHub.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
/* tslint:disable */
/* eslint-disable */
/**
* OpenShock.API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/

import { mapValues } from '../runtime';
import type { ControlType } from './ControlType';
import {
ControlTypeFromJSON,
ControlTypeFromJSONTyped,
ControlTypeToJSON,
ControlTypeToJSONTyped,
} from './ControlType';
import type { ControlLogSenderLight } from './ControlLogSenderLight';
import {
ControlLogSenderLightFromJSON,
ControlLogSenderLightFromJSONTyped,
ControlLogSenderLightToJSON,
ControlLogSenderLightToJSONTyped,
} from './ControlLogSenderLight';

/**
*
* @export
* @interface LogEntryWithHub
*/
export interface LogEntryWithHub {
/**
*
* @type {string}
* @memberof LogEntryWithHub
*/
id: string;
/**
*
* @type {string}
* @memberof LogEntryWithHub
*/
hubId: string;
/**
*
* @type {string}
* @memberof LogEntryWithHub
*/
hubName: string;
/**
*
* @type {string}
* @memberof LogEntryWithHub
*/
shockerId: string;
/**
*
* @type {string}
* @memberof LogEntryWithHub
*/
shockerName: string;
/**
*
* @type {Date}
* @memberof LogEntryWithHub
*/
createdOn: Date;
/**
*
* @type {ControlType}
* @memberof LogEntryWithHub
*/
type: ControlType;
/**
*
* @type {ControlLogSenderLight}
* @memberof LogEntryWithHub
*/
controlledBy: ControlLogSenderLight;
/**
*
* @type {number}
* @memberof LogEntryWithHub
*/
intensity: number;
/**
*
* @type {number}
* @memberof LogEntryWithHub
*/
duration: number;
}



/**
* Check if a given object implements the LogEntryWithHub interface.
*/
export function instanceOfLogEntryWithHub(value: object): value is LogEntryWithHub {
if (!('id' in value) || value['id'] === undefined) return false;
if (!('hubId' in value) || value['hubId'] === undefined) return false;
if (!('hubName' in value) || value['hubName'] === undefined) return false;
if (!('shockerId' in value) || value['shockerId'] === undefined) return false;
if (!('shockerName' in value) || value['shockerName'] === undefined) return false;
if (!('createdOn' in value) || value['createdOn'] === undefined) return false;
if (!('type' in value) || value['type'] === undefined) return false;
if (!('controlledBy' in value) || value['controlledBy'] === undefined) return false;
if (!('intensity' in value) || value['intensity'] === undefined) return false;
if (!('duration' in value) || value['duration'] === undefined) return false;
return true;
}

export function LogEntryWithHubFromJSON(json: any): LogEntryWithHub {
return LogEntryWithHubFromJSONTyped(json, false);
}

export function LogEntryWithHubFromJSONTyped(json: any, ignoreDiscriminator: boolean): LogEntryWithHub {
if (json == null) {
return json;
}
return {

'id': json['id'],
'hubId': json['hubId'],
'hubName': json['hubName'],
'shockerId': json['shockerId'],
'shockerName': json['shockerName'],
'createdOn': (new Date(json['createdOn'])),
'type': ControlTypeFromJSON(json['type']),
'controlledBy': ControlLogSenderLightFromJSON(json['controlledBy']),
'intensity': json['intensity'],
'duration': json['duration'],
};
}

export function LogEntryWithHubToJSON(json: any): LogEntryWithHub {
return LogEntryWithHubToJSONTyped(json, false);
}

export function LogEntryWithHubToJSONTyped(value?: LogEntryWithHub | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}

return {

'id': value['id'],
'hubId': value['hubId'],
'hubName': value['hubName'],
'shockerId': value['shockerId'],
'shockerName': value['shockerName'],
'createdOn': value['createdOn'].toISOString(),
'type': ControlTypeToJSON(value['type']),
'controlledBy': ControlLogSenderLightToJSON(value['controlledBy']),
'intensity': value['intensity'],
'duration': value['duration'],
};
}

74 changes: 74 additions & 0 deletions src/lib/api/internal/v1/models/ShockerLogsResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/* tslint:disable */
/* eslint-disable */
/**
* OpenShock.API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/

import { mapValues } from '../runtime';
import type { LogEntryWithHub } from './LogEntryWithHub';
import {
LogEntryWithHubFromJSON,
LogEntryWithHubFromJSONTyped,
LogEntryWithHubToJSON,
LogEntryWithHubToJSONTyped,
} from './LogEntryWithHub';

/**
*
* @export
* @interface ShockerLogsResponse
*/
export interface ShockerLogsResponse {
/**
*
* @type {Array<LogEntryWithHub>}
* @memberof ShockerLogsResponse
*/
logs: Array<LogEntryWithHub>;
}

/**
* Check if a given object implements the ShockerLogsResponse interface.
*/
export function instanceOfShockerLogsResponse(value: object): value is ShockerLogsResponse {
if (!('logs' in value) || value['logs'] === undefined) return false;
return true;
}

export function ShockerLogsResponseFromJSON(json: any): ShockerLogsResponse {
return ShockerLogsResponseFromJSONTyped(json, false);
}

export function ShockerLogsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ShockerLogsResponse {
if (json == null) {
return json;
}
return {

'logs': ((json['logs'] as Array<any>).map(LogEntryWithHubFromJSON)),
};
}

export function ShockerLogsResponseToJSON(json: any): ShockerLogsResponse {
return ShockerLogsResponseToJSONTyped(json, false);
}

export function ShockerLogsResponseToJSONTyped(value?: ShockerLogsResponse | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}

return {

'logs': ((value['logs'] as Array<any>).map(LogEntryWithHubToJSON)),
};
}

2 changes: 2 additions & 0 deletions src/lib/api/internal/v1/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export * from './LcgResponseLegacyDataResponse';
export * from './LegacyEmptyResponse';
export * from './LogEntry';
export * from './LogEntryArrayLegacyDataResponse';
export * from './LogEntryWithHub';
export * from './Login';
export * from './LoginSessionResponse';
export * from './MatchTypeEnum';
Expand Down Expand Up @@ -77,6 +78,7 @@ export * from './ShareInfoArrayLegacyDataResponse';
export * from './SharedDevice';
export * from './SharedShocker';
export * from './ShockerLimits';
export * from './ShockerLogsResponse';
export * from './ShockerModelType';
export * from './ShockerPermLimitPair';
export * from './ShockerPermissions';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import ControlListener from './ControlListener.svelte';
import ActionButtons from './impl/ActionButtons.svelte';
import CircleSlider from './impl/CircleSlider.svelte';
import ShockerMenu from './impl/ShockerMenu.svelte';

interface Props {
shocker: ShockerResponse;
Expand All @@ -36,7 +37,12 @@
class="border-surface-400-500-token flex flex-col items-center justify-center gap-2 overflow-hidden rounded-md border p-2"
>
<!-- Title -->
<h2 class="w-full truncate px-4 text-center text-lg font-bold">{shocker.name}</h2>
<h2 class="w-full px-4 text-center text-lg font-bold flex justify-between">
<span>
{shocker.name}
</span>
<ShockerMenu {shocker} />
</h2>
<!-- Sliders -->
<div class="flex items-center gap-2">
<CircleSlider name="Intensity" bind:value={intensity} {...ControlIntensityProps} />
Expand Down
Loading
Loading