jukebox-web/README.md
2024-02-03 11:40:58 -05:00

265 lines
5.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<img src="https://cdn.worldvectorlogo.com/logos/belden-4.svg">
---
# Belden Jukebox Front/Back Specifications
## This document outlines how data will be transmitted between the frontend and the backend.
---
### Standard Object
- All objects sent between the frontend and backend will follow this format.
```json
{
    type: "name_of_request"
    call: "send, request"
    data: {
    }
}
```
---
### CABLE_MAP Object
#### Front:
> Front -> Back
```json
{
    type: "cable_map"
    call: "request"
    data: {
    }
}
```
#### Back:
> Back -> Front
```json
{
    type: "cable_map"
    call: "send"
    data: {
        map: [
            item {
                part_number: 12345
                position: 0-53
                name: "Fancy Displayable Name"
                brand: "Belden"
                description: "This is a good cable!"
                short_description: "Good cable!"
            }
            ... many more items
        ]
    }
}
```
---
### CABLE_DETAILS Object
#### Front:
> Front -> Back
```json
{
    type: "cable_details"
    call: "request"
    data: {
        part_number: [
            12345,
            67890,
            ...
        ]
        position: [
            0,
            1,
            2,
            ... 53
        ]
    }
}
```
#### Back:
> Back -> Front
```json
{
    type: "cable_details"
    call: "send"
    data: {
        cables: [
            {
                part_number: 12345
                position: 0-53
                part_image_url: "https://belden.com"
                brand_image_url: "https://belden.com"
                extracted_object: {
                    ....... #brand will be in here
                }
            },
            .....
        ]
    }
}
```
---
### CABLE_SEARCH Object
#### Front:
> Front -> Back
```json
{
    type: "cable_search"
    call: "request"
    data: {
        string: "name/part_number/type/category/etc"
    }
}
```
#### Back:
> Back -> Front
```json
{
    type: "cable_search"
    call: "send"
    data: {
        cables: [
            {
                part_number: 12345
                position: 0-53
                part_image_url: "https://belden.com"
                brand_image_url: "https://belden.com"
                extracted_object: {
                    ....... #brand will be in here
                }
            },
            ....
        ]
    }
}
```
---
### KEYBOARD Object
#### Front:
> Front -> Back
```json
{
    type: "keyboard"
    call: "request"
    data: {
        enabled: True / False
    }
}
```
---
### MACHINE_SETTINGS Object
#### Front:
> Front -> Back
```json
{
    type: "machine_settings"
    call: "request"
    data: {
    }
}
```
#### Back:
> Back -> Front
```json
{
    type: "machine_settings"
    call: "send"
    data: {
    settings: [
    {
    setting_name: "text field"
    type: "text"
    current_value: "current value of seting"
    },
    {
    setting_name: "radio button"
    type: "radio"
    current_value: "option 1"
    radio_values: [
    "option 1",
    "option 2",
    "option 3"
    ]
    },
    {
    setting_name: "check box"
    type: "check"
    current_value: ["option 1", "option 2"]
    radio_values: [
    "option 1",
    "option 2",
    "option 3"
    ]
    },
    {
    setting_name: "enabled or disabled"
    type: "boolean"
    current_value: True
    },
    {
    setting_name: "slider bar"
    type: "slider"
    current_value: 50.0 #Float
    min: -100.0 #Float
    max: 100.0 #Float
    }
    ]
    }
}
```
#### Front:
> Front -> Back
```json
{
    type: "machine_settings"
    call: "send"
    data: {
    settings: [
    {
    setting_name: "text field"
    type: "text"
    new_value: "current value of seting"
    },
    {
    setting_name: "radio button"
    type: "radio"
    new_value: [
    "option 1",
    "option 2",
    "option 3"
    ]
    },
    {
    setting_name: "check box"
    type: "check"
    new_value: [
    "option 1",
    "option 2",
    "option 3"
    ]
    },
    {
    setting_name: "enabled or disabled"
    type: "boolean"
    new_value: False
    },
    {
    setting_name: "slider bar"
    type: "slider"
    new_value: 100.0 #Float
    }
    ]
    }
}
```
---