Skip to content

Commit b0e2eca

Browse files
authored
Merge pull request #2 from eternal-flame-AD/master
Update v1 API
2 parents 2e6c45a + 0ed0d1c commit b0e2eca

File tree

5 files changed

+13
-8
lines changed

5 files changed

+13
-8
lines changed

config.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package plugin
33
// Configurer is the interface plugins should implement in order to provide configuration interface to the user
44
type Configurer interface {
55
Plugin
6-
// DefaultConfig will be called on plugin first run. The default configuration will be provided to the user for future editing.
6+
// DefaultConfig will be called on plugin first run to set the default config.
7+
// DefaultConfig will also be used if the provided config cannot be validate during initialization.
8+
// The default configuration will be provided to the user for future editing. Used for generating schemas and unmarshaling.
79
DefaultConfig() interface{}
8-
// EmptyConfig returns an instance of an empty configuration. Used for generating schemes.
9-
EmptyConfig() interface{}
1010
// ValidateAndSetConfig will be called every time the plugin is initialized or the configuration has been changed by the user.
1111
// Plugins should check whether the configuration is valid and optionally return an error.
12-
// Parameter is guaranteed to be the same type as the return type of EmptyConfig()
12+
// Parameter is guaranteed to be the same type as the return type of DefaultConfig()
1313
ValidateAndSetConfig(c interface{}) error
1414
}

displayer.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package plugin
22

3+
import "net/url"
4+
35
// Displayer is the interface plugins should implement to show a text to the user.
46
// The text will appear on the plugin details page and can be multi-line.
57
// Markdown syntax is allowed. Good for providing dynamically generated instructions to the user.
8+
// Location is the current location the user is accessing the API from, nil if not recoverable.
9+
// Location contains the path to the display api endpoint, you may only need the base url.
10+
// Example: https://gotify.net/plugin/5/display
611
type Displayer interface {
712
Plugin
8-
GetDisplay() string
13+
GetDisplay(location *url.URL) string
914
}

export_ref_do_not_edit.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"label":"Displayer","type":"interface","fileName":"displayer.go","pos":276,"members":[{"label":"Plugin","type":"embed"},{"label":"GetDisplay","type":"method","funcSpec":{"returns":[{"type":"type","underlyingType":"string"}]}}]},{"label":"Message","type":"struct","fileName":"messenger.go","pos":93,"members":[{"label":"Message","type":"member"},{"label":"Title","type":"member"},{"label":"Priority","type":"member"}]},{"label":"MessageHandler","type":"interface","fileName":"messenger.go","pos":237,"members":[{"label":"SendMessage","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"Message"}],"returns":[{"type":"type","underlyingType":"error"}]}}]},{"label":"Messenger","type":"interface","fileName":"messenger.go","pos":452,"members":[{"label":"Plugin","type":"embed"},{"label":"SetMessageHandler","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"MessageHandler"}]}}]},{"label":"Plugin","type":"interface","fileName":"plugin.go","pos":79,"members":[{"label":"Enable","type":"method","funcSpec":{"returns":[{"type":"type","underlyingType":"error"}]}},{"label":"Disable","type":"method","funcSpec":{"returns":[{"type":"type","underlyingType":"error"}]}}]},{"label":"UserContext","type":"struct","fileName":"plugin.go","pos":473,"members":[{"label":"ID","type":"member"},{"label":"Name","type":"member"},{"label":"Admin","type":"member"}]},{"label":"Info","type":"struct","fileName":"plugin.go","pos":731,"members":[{"label":"Version","type":"member"},{"label":"Author","type":"member"},{"label":"Name","type":"member"},{"label":"Website","type":"member"},{"label":"Description","type":"member"},{"label":"License","type":"member"},{"label":"ModulePath","type":"member"}]},{"label":"Configurer","type":"interface","fileName":"config.go","pos":133,"members":[{"label":"Plugin","type":"embed"},{"label":"DefaultConfig","type":"method","funcSpec":{"returns":[{"type":"interface"}]}},{"label":"EmptyConfig","type":"method","funcSpec":{"returns":[{"type":"interface"}]}},{"label":"ValidateAndSetConfig","type":"method","funcSpec":{"params":[{"type":"interface"}],"returns":[{"type":"type","underlyingType":"error"}]}}]},{"label":"Webhooker","type":"interface","fileName":"webhook.go","pos":139,"members":[{"label":"Plugin","type":"embed"},{"label":"RegisterWebhook","type":"method","funcSpec":{"params":[{"label":"gin.RouterGroup","type":"selector"}]}}]},{"label":"StorageHandler","type":"interface","fileName":"storage.go","pos":125,"members":[{"label":"Save","type":"method","funcSpec":{"params":[{"label":"[]byte","type":"array"}],"returns":[{"type":"type","underlyingType":"error"}]}},{"label":"Load","type":"method","funcSpec":{"returns":[{"label":"[]byte","type":"array"},{"type":"type","underlyingType":"error"}]}}]},{"label":"Storager","type":"interface","fileName":"storage.go","pos":287,"members":[{"label":"Plugin","type":"embed"},{"label":"SetStorageHandler","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"StorageHandler"}]}}]}]
1+
[{"label":"StorageHandler","type":"interface","fileName":"storage.go","pos":125,"members":[{"label":"Save","type":"method","funcSpec":{"params":[{"label":"[]byte","type":"array"}],"returns":[{"type":"type","underlyingType":"error"}]}},{"label":"Load","type":"method","funcSpec":{"returns":[{"label":"[]byte","type":"array"},{"type":"type","underlyingType":"error"}]}}]},{"label":"Storager","type":"interface","fileName":"storage.go","pos":287,"members":[{"label":"Plugin","type":"embed"},{"label":"SetStorageHandler","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"StorageHandler"}]}}]},{"label":"Displayer","type":"interface","fileName":"displayer.go","pos":390,"members":[{"label":"Plugin","type":"embed"},{"label":"GetDisplay","type":"method","funcSpec":{"params":[{"label":"*url.URL","type":"star"}],"returns":[{"type":"type","underlyingType":"string"}]}}]},{"label":"Message","type":"struct","fileName":"messenger.go","pos":93,"members":[{"label":"Message","type":"member"},{"label":"Title","type":"member"},{"label":"Priority","type":"member"},{"label":"Extras","type":"member"}]},{"label":"MessageHandler","type":"interface","fileName":"messenger.go","pos":270,"members":[{"label":"SendMessage","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"Message"}],"returns":[{"type":"type","underlyingType":"error"}]}}]},{"label":"Messenger","type":"interface","fileName":"messenger.go","pos":485,"members":[{"label":"Plugin","type":"embed"},{"label":"SetMessageHandler","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"MessageHandler"}]}}]},{"label":"Plugin","type":"interface","fileName":"plugin.go","pos":79,"members":[{"label":"Enable","type":"method","funcSpec":{"returns":[{"type":"type","underlyingType":"error"}]}},{"label":"Disable","type":"method","funcSpec":{"returns":[{"type":"type","underlyingType":"error"}]}}]},{"label":"UserContext","type":"struct","fileName":"plugin.go","pos":473,"members":[{"label":"ID","type":"member"},{"label":"Name","type":"member"},{"label":"Admin","type":"member"}]},{"label":"Info","type":"struct","fileName":"plugin.go","pos":731,"members":[{"label":"Version","type":"member"},{"label":"Author","type":"member"},{"label":"Name","type":"member"},{"label":"Website","type":"member"},{"label":"Description","type":"member"},{"label":"License","type":"member"},{"label":"ModulePath","type":"member"}]},{"label":"Configurer","type":"interface","fileName":"config.go","pos":133,"members":[{"label":"Plugin","type":"embed"},{"label":"DefaultConfig","type":"method","funcSpec":{"returns":[{"type":"interface"}]}},{"label":"ValidateAndSetConfig","type":"method","funcSpec":{"params":[{"type":"interface"}],"returns":[{"type":"type","underlyingType":"error"}]}}]},{"label":"Webhooker","type":"interface","fileName":"webhook.go","pos":139,"members":[{"label":"Plugin","type":"embed"},{"label":"RegisterWebhook","type":"method","funcSpec":{"params":[{"type":"type","underlyingType":"string"},{"label":"*gin.RouterGroup","type":"star"}]}}]}]

messenger.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ type Message struct {
55
Message string
66
Title string
77
Priority int
8+
Extras map[string]interface{}
89
}
910

1011
// MessageHandler consists of message callbacks to be used by plugins.

webhook.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,5 @@ import "github.com/gin-gonic/gin"
66
type Webhooker interface {
77
Plugin
88
// RegisterWebhook is called for plugins to create their own handler.
9-
// Plugins can call mux.BasePath() to acquire their custom handler base path.
10-
RegisterWebhook(mux gin.RouterGroup)
9+
RegisterWebhook(basePath string, mux *gin.RouterGroup)
1110
}

0 commit comments

Comments
 (0)