1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! `jiragen` is a collection of utilities for sending requests to JIRA. It includes functionality for sending bulk issue creation from a .csv file.
//! ```no_run
//! use csv::{Reader, StringRecord};
//! use jiragen::{Config, csv_to_json, JiraClient, JiraIssue};
//! use serde_json::json;
//!
//! // Configure & initialize JIRA client
//! let config = Config {
//! jira_url: "my-jira.com".to_string(),
//! jira_user: "user".to_string(),
//! jira_password: "password".to_string(),
//! };
//! let jira = JiraClient::new(config);
//!
//! // Prepare CSV data
//! let mut csv_reader = Reader::from_path("jiragen_issues.csv").unwrap();
//! let ids_record = csv_reader.headers().unwrap().clone();
//! let ids: Vec<&str> = ids_record.iter().collect();
//!
//! let mut csv_records = csv_reader.into_records();
//! csv_records.next(); // skip line 2, which contains human-readable field names
//!
//! // create bulk issues to send starting on line 3
//! let filtered_csv_records: Vec<StringRecord> = csv_records
//! .filter_map(|record_result| match record_result {
//! Ok(result) => Some(result),
//! Err(_) => None,
//! })
//! .collect();
//! let json_values = csv_to_json(ids, filtered_csv_records).unwrap();
//!
//! let issues_to_create: Vec<JiraIssue> = json_values
//! .into_iter()
//! .map(|record_json| JiraIssue {
//! update: None,
//! fields: record_json,
//! })
//! .collect();
//!
//! let bulk_issue_create_request = jira.init_request("POST", "/rest/api/2/issue/bulk");
//! let request_json = json!({ "issueUpdates": issues_to_create });
//!
//! let mut response = bulk_issue_create_request
//! .body(request_json.to_string())
//! .send();
//! ```
extern crate lazy_static;
pub use ;
pub use Config;
pub use ;
pub use csv_to_json;