diff options
| author | mo khan <mo@mokhan.ca> | 2022-08-06 17:08:42 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2022-08-06 17:08:42 -0600 |
| commit | c45ba93233758e804a3a90997acc2c24141061b4 (patch) | |
| tree | 0b640411e59d8eaa6dc87cefc838f5cacd641e4b /builder/builder.go | |
| parent | 03bd3bfe2c55446f08009b79b7fc0b708269fe9a (diff) | |
add single path
Diffstat (limited to 'builder/builder.go')
| -rw-r--r-- | builder/builder.go | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/builder/builder.go b/builder/builder.go index 16f28ed..3f16d71 100644 --- a/builder/builder.go +++ b/builder/builder.go @@ -1,36 +1,53 @@ package builder -type Info struct { - Title string `json:"title"` - Version string `json:"version"` +type Builder interface { + AddPath(string) PathBuilder + Build() *Document } -type Paths struct { +type PathBuilder interface { + Get(string, string) } -type Document struct { - Version string `json:"openapi"` - Info *Info `json:"info"` - Paths *Paths `json:"paths"` +type builder struct { + doc *Document } -type Builder struct { - doc *Document +type pathBuilder struct { + root string + builder *builder } -func New(title, version string) *Builder { - return &Builder{ +func (b *pathBuilder) Get(description string, summary string) { + paths := b.builder.doc.Paths + paths[b.root] = map[string]interface{}{ + "get": map[string]interface{}{ + "description": description, + "summary": summary, + }, + } +} + +func New(title, version string) Builder { + return &builder{ doc: &Document{ Version: "3.1.0", Info: &Info{ Title: title, Version: version, }, - Paths: &Paths{}, + Paths: Paths{}, }, } } -func (b *Builder) Build() *Document { +func (b *builder) AddPath(path string) PathBuilder { + return &pathBuilder{ + root: path, + builder: b, + } +} + +func (b *builder) Build() *Document { return b.doc } |
