# mm
## playground
https://wpem-cch-ensaas.dev001.wise-paas.com/
## machine type
machine type目前就四種,只需接查詢的即可
### 查詢全部machine type
request
```graphql=
query {
wpemMachineTypes() {
name
label
parameterTypes {
type
units
}
createdAt
updatedAt
}
}
```
response
```json=
{
"data": {
"wpemMachineTypes": [
{
"name": "temperatureMeter",
"label": "Temperature meter",
"parameterTypes": [
{
"type": "temperature",
"units": [
"°C"
]
}
],
"createdAt": 1661244891016,
"updatedAt": 1661244891016
},
{
"name": "humidityMeter",
"label": "Humidity meter",
"parameterTypes": [
{
"type": "humidity",
"units": [
"%"
]
}
],
"createdAt": 1661244891036,
"updatedAt": 1661244891036
},
{
"name": "noiseDosimeter",
"label": "Noise dosimeter",
"parameterTypes": [
{
"type": "noise",
"units": [
"%"
]
}
],
"createdAt": 1661244891057,
"updatedAt": 1661244891057
},
{
"name": "aqi",
"label": "AQI",
"parameterTypes": [
{
"type": "CO",
"units": [
"ppm"
]
},
{
"type": "O3",
"units": [
"ppb"
]
},
{
"type": "NO2",
"units": [
"ppb"
]
},
{
"type": "SO2",
"units": [
"ppb"
]
},
{
"type": "PM10",
"units": [
"μg/m3"
]
},
{
"type": "PM2.5",
"units": [
"μg/m3"
]
}
],
"createdAt": 1661244891076,
"updatedAt": 1661244891076
}
]
}
}
```
### 查詢指定machine type
```graphql
query {
wpemMachineTypes(names: ["temperatureMeter"]) {
name
label
parameterTypes {
type
units
}
createdAt
updatedAt
}
}
```
### 刪除machine type
```graphql
mutation{
wpemMachineTypeDelete(name: "temperatureMeter")
}
```
## parameter
### 建立parameter
Request:
```graphql=
mutation {
wpemParameterCreate (input: [{
tenantId: "aa"
groupId: "aa"
machineType: "meter"
machineId: "aa"
parameterId: "aabb4411"
parameterType: "Number"
name: "test"
location: "aaa/bbb/test"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
},{
tenantId: "aa"
groupId: "aa"
machineType: "meter"
machineId: "aa"
parameterId: "aabb44"
parameterType: "Number"
name: "test"
location: "aaa/bbb/test"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
}]){
id
createdAt
}
}
```
Response
```json=
{
"data": {
"wpemParameterCreate": [
{
"id": "2bdumrco0400",
"createdAt": 1661244962662
},
{
"id": "2bdumrco0401",
"createdAt": 1661244962662
}
]
}
}
```
### 查詢全部parameter
request
```graphql=
query {
wpemParameters(){
id
machineId
name
alerts
}
}
```
response:
```json=
{
"data": {
"wpemParameters": [
{
"id": "2bdumrco0400",
"machineId": "aa",
"name": "test",
"alerts": [
"a1",
"a3"
]
},
{
"id": "2bdumrco0401",
"machineId": "aa",
"name": "test",
"alerts": [
"a1",
"a3"
]
}
]
}
}
```
### 查詢指定(單/多個)parameter
request
```graphql=
query {
wpemParameters(ids:["2bdumrco0401"]){
id
machineId
name
alerts
}
}
```
response
```json=
{
"data": {
"wpemParameters": [
{
"id": "2bdumrco0401",
"machineId": "aa",
"name": "test",
"alerts": [
"na1",
"na2"
]
}
]
}
}
```
### 刪除parameter
request:
```graphql=
mutation {
wpemParameterDelete(ids: ["2bdumrco0401"])
}
```
response:
```json=
{
"data": {
"wpemParameterDelete": true
}
}
```
## graphql schema
```graphql=
# GraphQL schema example
#
# https://gqlgen.com/getting-started/
type WpemMachineType {
name: String!
label: String!
parameterTypes: [WpemParameterType]!
createdAt: Int!
updatedAt: Int!
}
type WpemParameterType {
type: String!
units: [String]!
}
input WpemParameterInput {
type: String!
units: [String]!
}
input WpemMachineTypeCreateInput {
name: String!
label: String!
parameterTypes: [WpemParameterInput]!
}
type WpemMachineTypeCreatePayload {
name: String!
label: String!
parameterTypes: [WpemParameterType]!
createdAt: Int!
}
input WpemMachineTypeUpdateInput {
name: String!
label: String
parameterTypes: [WpemParameterInput]
}
type WpemMachineTypeUpdatePayload {
name: String!
label: String!
parameterTypes: [WpemParameterType]!
updatedAt: Int!
}
extend type Query {
wpemMachineTypes(names: [String]): [WpemMachineType]!
}
extend type Mutation {
wpemMachineTypeCreate(input: WpemMachineTypeCreateInput!):WpemMachineTypeCreatePayload
wpemMachineTypeUpdate(input: WpemMachineTypeUpdateInput!):WpemMachineTypeUpdatePayload
wpemMachineTypeDelete(names: [String]!):Boolean
}
# GraphQL schema example
#
# https://gqlgen.com/getting-started/
interface Node {
# The ID of the object.
id: ID!
}
type WpemParameter implements Node {
id: ID!
tenantId: String
groupId: String
machineId: String
parameterId: String
machineType: String
parameterType: String
name: String
location: String
alerts: [String]
silences: [String]
tags: [String]
createdAt: Int
updatedAt: Int
}
input WpemParameterCreateInput {
tenantId: String!
groupId: String!
machineId: String!
parameterId: String!
machineType: String!
parameterType: String!
name: String!
location: String!
alerts: [String]
silences: [String]
tags: [String]
}
type WpemParameterCreatePayload {
id: ID!
tenantId: String
groupId: String
machineId: String
parameterId: String
machineType: String
parameterType: String
location: String
name: String
alerts: [String]
silences: [String]
tags: [String]
createdAt: Int
}
input WpemParameterUpdateInput {
id: String!
name: String
location: String
alerts: [String]
silences: [String]
tags: [String]
}
type WpemParameterUpdatePayload {
id: ID!
tenantId: String
groupId: String
machineId: String
parameterId: String
machineType: String
parameterType: String
name: String
location: String
alerts: [String]
silences: [String]
tags: [String]
updatedAt: Int
}
extend type Query {
wpemParameters(ids: [String]): [WpemParameter]!
}
extend type Mutation {
wpemParameterCreate(input: [WpemParameterCreateInput]!):[WpemParameterCreatePayload]
wpemParameterUpdate(input: [WpemParameterUpdateInput]!):[WpemParameterUpdatePayload]
wpemParameterDelete(ids: [String]!):Boolean
}
```
## 測試資料
```graphql=
mutation {
wpemParameterCreate (input: [{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "temperatureMeter"
machineId: "temperature1"
machineName: "temperature"
parameterId: "temperaturePara1"
parameterType: "temperature"
name: "temp-1"
location: "/testTenant/testgroup/temperature"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
},{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "temperatureMeter"
machineId: "temperature1"
machineName: "temperature"
parameterId: "temperaturePara2"
parameterType: "temperature"
name: "temp-2"
location: "/testTenant/testgroup/temperature"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
}]){
id
createdAt
}
}
mutation {
wpemParameterCreate (input: [{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "humidityMeter"
machineId: "humidity1"
machineName: "humidity1"
parameterId: "humidityPara1"
parameterType: "humidity"
name: "humidity-1"
location: "/testTenant/testgroup/humidity"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
},{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "humidityMeter"
machineId: "humidity1"
machineName: "humidity1"
parameterId: "humidityPara2"
parameterType: "humidity"
name: "humidity-2"
location: "/testTenant/testgroup/humidity"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
}]){
id
createdAt
}
}
mutation {
wpemParameterCreate (input: [{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "noiseDosimeter"
machineId: "noise1"
parameterId: "noisePara1"
machineName: "noise1"
parameterType: "noise"
name: "noise-1"
location: "/testTenant/testgroup/noise"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
},{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "noiseDosimeter"
machineId: "noise1"
machineName: "noise1"
parameterId: "noisePara2"
parameterType: "noise"
name: "noise-2"
location: "/testTenant/testgroup/noise"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
}]){
id
createdAt
}
}
mutation {
wpemParameterCreate (input: [{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "aqi"
machineId: "aqi1"
machineName: "aqi"
parameterId: "aqiPara1"
parameterType: "NO2"
name: "NO2-1"
location: "/testTenant/testgroup/aqi"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
},{
tenantId: "testTenant"
groupId: "testgroup"
machineType: "aqi"
machineId: "aqi1"
machineName: "aqi"
parameterId: "aqiPara2"
parameterType: "PM2.5"
name: "PM2.5-1"
location: "/testTenant/testgroup/aqi"
alerts: ["a1","a3"]
silences: ["s1", "s2"]
tags: ["t1", "t2"]
}]){
id
createdAt
}
}
```