DEVELOPER_DOCUMENTATION.md in pact_broker-2.37.0 vs DEVELOPER_DOCUMENTATION.md in pact_broker-2.38.0

- old
+ new

@@ -1,14 +1,20 @@ # Developer Documentation ## File structure * Application code - [lib](lib) - * List of API endpoints - [lib/pact_broker/api.rb](lib/pact_broker/api.rb) + * The aggregated application (API, UI, middleware, HAL Browser, diagnostic endpoints etc) - [lib/pact_broker/app.rb](lib/pact_broker/app.rb) * API - [lib/pact_broker/api](lib/pact_broker/api) + * Routes - [lib/pact_broker/api.rb](lib/pact_broker/api.rb) * HTTP Resources - [lib/pact_broker/api/resources](lib/pact_broker/api/resources) These handle the HTTP requests. * Decorators - [lib/pact_broker/api/decorators](lib/pact_broker/api/decorators) These render the response bodies. * Contracts - [lib/pact_broker/api/contracts](lib/pact_broker/api/contracts) These validate incoming API requests. + * UI - [lib/pact_broker/ui](lib/pact_broker/ui) + * Routes - [lib/pact_broker/ui/app.rb](lib/pact_broker/ui/app.rb) + * Controllers - [lib/pact_broker/ui/controllers](lib/pact_broker/ui/controllers) These handle the HTTP requests. + * Views - [lib/pact_broker/ui/views](lib/pact_broker/ui/views) These render the view using HAML + * View models - [lib/pact_broker/ui/view_models](lib/pact_broker/ui/view_models) These expose the domain model data in a way that is suited to rendering in a view. * Domain - Domain classes were intially created in [lib/pact_broker/domain](lib/pact_broker/domain) but are now put in their own modules. The ones left here just haven't been migrated yet. The module name is the plural of the domain class name. eg `lib/pact_broker/widgets/widget.rb`. * Services and Repositories - in the module with the name of their domain concept. eg `lib/pact_broker/widgets/service.rb` and `lib/pact_broker/widgets/repository.rb` * Standalone "function as class" classes go into the module they relate to. This pattern is used when there is some significant stateless logic that we want to * Database migrations - [db/migrations](db/migrations)