Adam Štrauch
81bcdcf00c
All checks were successful
continuous-integration/drone/push Build is passing
76 lines
2.2 KiB
Go
76 lines
2.2 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/rosti-cz/node-api/apps"
|
|
)
|
|
|
|
// Path where authorized keys are
|
|
const sshPubKeysLocation = "/srv/.ssh/authorized_keys"
|
|
|
|
// RequestMessage message
|
|
type RequestMessage struct {
|
|
AppName string `json:"name"`
|
|
Type string `json:"type"`
|
|
Payload string `json:"payload"`
|
|
}
|
|
|
|
type StateMessage struct {
|
|
AppName string `json:"name"` // Name of the related application stored in the main database
|
|
Error bool `json:"error"` // True if the message is an error message
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func (s *StateMessage) JSON() ([]byte, error) {
|
|
return json.Marshal(s)
|
|
}
|
|
|
|
// ReplyMessage is returned as reply to a message that requires replying
|
|
type ReplyMessage struct {
|
|
AppName string `json:"name,omitempty"`
|
|
Error bool `json:"error,omitempty"` // True if this message is an error message and in that case Payload is string with an error message, otherwise it's standard response
|
|
Payload interface{} `json:"payload"`
|
|
}
|
|
|
|
// Message represents response with information about results of something
|
|
type Message struct {
|
|
// Message with different kind of information. Usually it's error message generated by dependencies or stdlib or simply ok.
|
|
// Example: ok
|
|
// Required: false
|
|
Message string `json:"message,omitempty"`
|
|
// If there are any errors all of them are listed here.
|
|
// Required: false
|
|
Errors []string `json:"errors,omitempty"`
|
|
}
|
|
|
|
// data passed into the template
|
|
type templateData struct {
|
|
Token string
|
|
}
|
|
|
|
// Password is request structure you can use to pass password for app user in the container
|
|
type Password struct {
|
|
Password string `json:"password"`
|
|
}
|
|
|
|
// QuickServices comes from client and say what technology or service enable in the container
|
|
type QuickServices struct {
|
|
Python bool `json:"python"`
|
|
Node bool `json:"node"`
|
|
PHP bool `json:"php"`
|
|
Ruby bool `json:"ruby"`
|
|
Deno bool `json:"deno"`
|
|
Memcached bool `json:"memcached"`
|
|
Redis bool `json:"redis"`
|
|
}
|
|
|
|
// SnapshotMetadata is snapshot structure encapsulation that combines key and metadata about the snapshot
|
|
type SnapshotMetadata struct {
|
|
Key string `json:"key"`
|
|
Metadata apps.Snapshot `json:"metadata"`
|
|
}
|
|
|
|
// SnapshotsMetadata is returned by handlers
|
|
type SnapshotsMetadata []SnapshotMetadata
|