# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.5.3]

## [0.5.2] - 2024-02-11

### Added

- custom result wrapper
- `new()` function for `Error`

### Removed

- duplicate mod declaration of security
- commented tests of error mod

### Changed

- used custom result
- made some modules pub only in the crate
- moved TOKEN_INFO_URI to impl block
- used `new()` function for creating errors

## [0.5.1] - 2024-01-26

### Fixed

- random statement in `README.md`

## [0.5.0] - 2024-01-26

### Added

- `DriveCapabilities` to the `capabilities` object
- `changes` object
- `drive` object
- `changes` resource
- `App`, `AppList` and `AppIcon` objects
- `apps` resource
- `channels` resource
- doctests to CI/CD
- `Comment` and `QuotedFileContent` objects
- `Reply` object
- `comments` resource
- `drives` resource
- `permissions` resource
- `replies` resource
- `revisions` resource

### Changed

- renamed `Capabilities` to `FileCapabilities`
- updated the example of `files` resource
- updated `README.md`
- updated object docs

## [0.4.2] - 2024-01-25

### Added

- test coverage badge

### Changed

- updated tests in `files` resource
- updated tests in `upload` resource
- updated tests in `credentials` resource
- updated tests in `token` resource

## [0.4.1] - 2024-01-24

### Added

- added tests
- test coverage to pipeline

## [0.4.0] - 2024-01-24

### Added

- `requests` module to utils for making requests builders
- `convert_case` crate to convert snake case to camel case in the request builder macro
- implemented from `reference` to `Self` for objects in `file`
- the `modifyLabels` request.
- `Channel` object.
- the `watch` request.
- authors to `Cargo.toml`
- keywords to `Cargo.toml`
- categories to `Cargo.toml`
- `pipeline` badge

### Removed

- installation section of `README.md`

### Changed

- debug implementation of `secrets` and `token` to hide sensitive fields in the output
- refactored `about` resource
- response error format
- moved `FileUploader` from files to utils
- refactored `files` (saved 1792 lines of code)

## [0.3.1] - 2024-01-19

### Removed

- unused crates

## [0.3.0] - 2024-01-19

### Added

- examples to the `token` module
- docs of the `token` module
- tests of the `token` module
- `tarpaulin-report.html` to .gitignore
- impl of `DerefMut` for `ClientSecrets`
- tests of the `security` module
- implemented `Default` for `LocalServer`
- tests of the `server` module
- option to open browser when requesting authorization from Google's API
- #![warn(missing_docs)] to library
- `no_run` to examples requesting refresh tokens to avoid going over Google's limits
- tests to `secrets` module
- `objects` module to organize the types returned from Google's API
- `about` resource
- `utils` module
- `test` utils module
- `file` object
- `content_hint` object
- `permission` object
- `thumbnail` object
- `capabilities` object
- `image_media_metadata` object
- `video_media_metadata` object
- `shortcut_details` object
- `content_restriction` object
- implemented `Default`, `new` and `Display` for objects
- `delete` to files
- `ids` module to objects

### Removed

- re-export of `AccessToken` and `RefreshToken` to clean the main module
- re-export of `LocalServer` to clean the main module
- re-export of `ClientSecrets` to clean the main module
- scope checking in client secrets since the token will check
- updated `README.md`

### Changed

- using --release flag in CI/CD `build` stage
- made `client_secrets` and `access_token` of `Credentials` public
- moved `refresh` logic from credentials to the `AccessToken`
- moved valid `scopes` logic from credentials to the `AccessToken`
- docs of `security` module
- moved `local_server` to `server`
- made all modules public
- updated tests in `token` module
- updated docs in `token` module
- name of `DriveAPIResponse` error to `Response`
- moved documentation from top of modules to `lib.rs`
- updated docs in `error` module
- renamed `client_secrets` module to `secrets`
- updated `secrets` docs
- updated `token` tests to reduce usage of refresh tokens
- updated `server` tests
- updated `secrets` tests to reduce usage of refresh tokens
- updated `credentials` test to reduce usage of refresh tokens
- updated `files` resource
- removed `Deref` from client secrets

## [0.2.1] - 2024-01-12

### Fixed

- wrong path to `secure files` in CI/CD pipeline

## [0.2.0] - 2024-01-12

### Added

- `no_run` to local server tests as they require user input to complete
- `.secure-files` to .gitignore
- `test` stage to CI/CD

### Changed

- doc tests of `Credentials` to hide boiler plate and use secure files from CI/CD pipeline
- Error name `Reqwest` to a more generic `Request`

## [0.1.0] - 2024-01-12

### Added

- documentation to `lib.rs`
- custom `Error` for library
- `Credentials` documentation
- error documentation
- `testfile` as a dev dependency for temp file creation
- `credentials_old.json` to .gitignore
- `url` crate to use directly instead of the re export from reqwest
- docs of LocalServer
- `license` and `description` to Cargo.toml

### Changed

- updated library name from `rbm-drive-v3` to `drive-v3`

## [0.0.2] - 2024-01-11

### Added

- `create` request to Google API's files resource
- added struct `UploadMedia` to handle file uploading metadata
- added struct `Uploader` to handle uploading files in chunks
- added `test.*` to .gitignore for testing files
- added `indicatif` crate to display upload loading bar

### Changed

- updated README.md

## Removed

- unused `base64-url` crate

## [0.0.1] - 2024-01-11

### Added

- MIT license
- Change log
- Initial Google Drive API
