-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* Add some BU documentation * lint * Update BU outcomes section
- Loading branch information
1 parent
08165d0
commit 50abde7
Showing
5 changed files
with
49 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
--- | ||
has_children: true | ||
nav_order: 11 | ||
nav_order: 12 | ||
--- | ||
|
||
# Architecture decisions | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
--- | ||
nav_order: 11 | ||
--- | ||
|
||
# Bulk Upload | ||
|
||
Bulk upload functionality allows users to upload multiple logs using a csv file. | ||
|
||
## How Bulk Upload works | ||
|
||
Bulk upload file can be uploaded for a specific log type (sales or lettings) for a specific year. During crossover period we ask which collection year the file is for, otherwise we assume the Bulk Upload is for the current year. | ||
|
||
When a bulk upload file is successfully uploaded on the service, it: | ||
|
||
- Saves a BulkUpload record in the database | ||
- Uploads the file to S3 | ||
- Schedules `ProcessBulkUploadJob` | ||
|
||
### Bulk upload service | ||
|
||
There are several outcomes to a bulk upload: | ||
|
||
- Successful upload | ||
- Partial upload: upload has errors but partial logs can be created. Email to error report is sent to the user and the bulk upload needs a user approval | ||
- Errors in bulk upload: errors on important fields, or in the template. Logs can't be created and an email with errors (or a link to error report) is sent to the user | ||
|
||
![Bulk Upload Flow](https://raw.githubusercontent.com/communitiesuk/submit-social-housing-lettings-and-sales-data/main/docs/images/bu_flow_diagram.png) | ||
|
||
### Bulk upload processing | ||
|
||
Most of BU processing logic is in `BulkUpload::Processor`. It chooses the correct `Validator` and `LogCreator` classes for the log type and uses them to process the file. | ||
|
||
![Bulk Upload Processing](https://raw.githubusercontent.com/communitiesuk/submit-social-housing-lettings-and-sales-data/main/docs/images/bu_processor.png) | ||
|
||
Main differences between different collection years would be in `CsvParsers` and `RowParsers`. | ||
|
||
#### Row parser | ||
|
||
- Maps any values from a csv row into values saved internally | ||
- Maps any validations into errors for bulk uploads by associating them with relevant fields | ||
- Adds any additional validations that might only make sense in BU (for example, validation that might not relevant in single log submission due to routing) | ||
|
||
### Csv parser | ||
|
||
- Holds template specific information | ||
- Header information | ||
- Row and field information |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
--- | ||
nav_order: 12 | ||
nav_order: 13 | ||
--- | ||
|
||
# This documentation website | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.