mirror of
https://github.com/danielmiessler/fabric.git
synced 2026-09-10 07:36:44 -04:00
Merge pull request #2046 from ksylvan/kayvan/custom-patterns-load-fix-for-server
refactor: add `GetRaw` method to encapsulate raw pattern loading logic
This commit is contained in:
commit
f40c64e0ee
7
cmd/generate_changelog/incoming/2046.txt
Normal file
7
cmd/generate_changelog/incoming/2046.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
### PR [#2046](https://github.com/danielmiessler/Fabric/pull/2046) by [ksylvan](https://github.com/ksylvan): refactor: add `GetRaw` method to encapsulate raw pattern loading logic
|
||||
|
||||
- Add `GetRaw` method to `PatternsEntity` for unprocessed pattern retrieval
|
||||
- Replace inline raw pattern loading logic in server handler with `GetRaw`
|
||||
- Remove manual `Pattern` struct construction from `PatternsHandler.Get`
|
||||
- Simplify server handler by delegating storage access to database layer
|
||||
- Add test coverage for `GetRaw` with custom patterns directory
|
||||
|
|
@ -50,6 +50,11 @@ func (o *PatternsEntity) GetWithoutVariables(source, input string) (pattern *Pat
|
|||
return
|
||||
}
|
||||
|
||||
// GetRaw returns a pattern from storage without applying variable processing.
|
||||
func (o *PatternsEntity) GetRaw(name string) (*Pattern, error) {
|
||||
return o.getFromDB(name)
|
||||
}
|
||||
|
||||
func (o *PatternsEntity) loadPattern(source string) (pattern *Pattern, err error) {
|
||||
// Determine if this is a file path
|
||||
isFilePath := strings.HasPrefix(source, "\\") ||
|
||||
|
|
|
|||
|
|
@ -256,6 +256,11 @@ func TestPatternsEntity_CustomPatterns(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
assert.Equal(t, "Main pattern content", pattern.Pattern)
|
||||
|
||||
// Test GetRaw also respects custom patterns directory
|
||||
rawPattern, err := entity.GetRaw("shared-pattern")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "Custom shared pattern", rawPattern.Pattern)
|
||||
|
||||
// Test that custom pattern is accessible
|
||||
pattern, err = entity.getFromDB("custom-pattern")
|
||||
require.NoError(t, err)
|
||||
|
|
|
|||
|
|
@ -46,19 +46,11 @@ func NewPatternsHandler(r *gin.Engine, patterns *fsdb.PatternsEntity) (ret *Patt
|
|||
func (h *PatternsHandler) Get(c *gin.Context) {
|
||||
name := c.Param("name")
|
||||
|
||||
// Get the raw pattern content without any variable processing
|
||||
content, err := h.patterns.Load(name + "/" + h.patterns.SystemPatternFile)
|
||||
pattern, err := h.patterns.GetRaw(name)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// Return raw pattern in the same format as the processed patterns
|
||||
pattern := &fsdb.Pattern{
|
||||
Name: name,
|
||||
Description: "",
|
||||
Pattern: string(content),
|
||||
}
|
||||
c.JSON(http.StatusOK, pattern)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue