Set up Go module and project structure

- Populated .gitignore with Go-specific patterns
- Created placeholder Go files with basic package structure:
  - bookstack.go: Client and Config setup
  - types.go: Data structures (Book, Page, Chapter, Shelf, SearchResult)
  - errors.go: Error handling types with sentinel errors
  - http.go: HTTP helper placeholder with ListOptions
  - books.go, pages.go, chapters.go, shelves.go, search.go: Service placeholders
- Verified build succeeds with go build ./...
- No external dependencies added (stdlib only)

All files compile successfully and follow flat package structure.
This commit is contained in:
Oliver Jakoubek 2026-01-30 09:36:58 +01:00
commit 62e299192d
12 changed files with 457 additions and 0 deletions

43
pages.go Normal file
View file

@ -0,0 +1,43 @@
package bookstack
import "context"
// PagesService handles operations on pages.
type PagesService struct {
client *Client
}
// List returns a list of pages with optional filtering.
// TODO: Implement API call to GET /api/pages
func (s *PagesService) List(ctx context.Context, opts *ListOptions) ([]Page, error) {
// Placeholder for future implementation
return nil, nil
}
// Get retrieves a single page by ID.
// TODO: Implement API call to GET /api/pages/{id}
func (s *PagesService) Get(ctx context.Context, id int) (*Page, error) {
// Placeholder for future implementation
return nil, nil
}
// Create creates a new page.
// TODO: Implement API call to POST /api/pages
func (s *PagesService) Create(ctx context.Context, page *Page) (*Page, error) {
// Placeholder for future implementation
return nil, nil
}
// Update updates an existing page.
// TODO: Implement API call to PUT /api/pages/{id}
func (s *PagesService) Update(ctx context.Context, id int, page *Page) (*Page, error) {
// Placeholder for future implementation
return nil, nil
}
// Delete deletes a page by ID.
// TODO: Implement API call to DELETE /api/pages/{id}
func (s *PagesService) Delete(ctx context.Context, id int) error {
// Placeholder for future implementation
return nil
}