Skip to content

Commit 0277486

Browse files
authored
Merge pull request #21 from MickeyPvX/fix/filtering
fix: filtering / db updates
2 parents 059b3a5 + 4b7236c commit 0277486

14 files changed

Lines changed: 296 additions & 147 deletions

File tree

Cargo.lock

Lines changed: 30 additions & 48 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "espn-ffl"
3-
version = "2.1.3"
3+
version = "2.1.4"
44
edition = "2021"
55

66
[dependencies]

src/cli/types/ids.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ impl FromStr for LeagueId {
5050

5151
/// Type-safe wrapper for Player IDs
5252
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
53-
pub struct PlayerId(pub u64);
53+
pub struct PlayerId(pub i64);
5454

5555
impl PlayerId {
56-
pub fn new(id: u64) -> Self {
56+
pub fn new(id: i64) -> Self {
5757
Self(id)
5858
}
5959

60-
pub fn as_u64(&self) -> u64 {
60+
pub fn as_i64(&self) -> i64 {
6161
self.0
6262
}
6363
}

src/cli/types/position.rs

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ pub enum Position {
3232
TE,
3333
DEF,
3434
K,
35+
P, // Punter
36+
DT, // Defensive Tackle
37+
DE, // Defensive End
38+
LB, // Linebacker
39+
DB, // Defensive Back/Cornerback
40+
S, // Safety
3541
FLEX,
3642
BE,
3743
IR,
@@ -50,9 +56,15 @@ impl Position {
5056
Position::TE => vec![4, 6], // TE can be position 4 or 6 in ESPN
5157
Position::DEF => vec![16],
5258
Position::K => vec![5, 17], // K can be position 5 or 17
59+
Position::P => vec![7],
60+
Position::DT => vec![9],
61+
Position::DE => vec![10],
62+
Position::LB => vec![11],
63+
Position::DB => vec![12],
64+
Position::S => vec![13],
5365
Position::FLEX => vec![2, 3, 4, 6], // RB, WR, TE
54-
Position::BE => vec![0, 1, 2, 3, 4, 5, 6, 16, 17], // All positions
55-
Position::IR => vec![0, 1, 2, 3, 4, 5, 6, 16, 17], // All positions
66+
Position::BE => vec![0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 17], // All positions
67+
Position::IR => vec![0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 17], // All positions
5668
}
5769
}
5870

@@ -66,7 +78,17 @@ impl Position {
6678
3 => Ok(Position::WR),
6779
4 | 6 => Ok(Position::TE),
6880
5 | 17 => Ok(Position::K),
81+
7 => Ok(Position::P),
82+
9 => Ok(Position::DT),
83+
10 => Ok(Position::DE),
84+
11 => Ok(Position::LB),
85+
12 => Ok(Position::DB),
86+
13 => Ok(Position::S),
6987
16 => Ok(Position::DEF),
88+
// Reject coaches and other non-player positions
89+
14 => Err(EspnError::InvalidPosition {
90+
position: format!("COACH (id: {})", id),
91+
}),
7092
_ => Err(EspnError::InvalidPosition {
7193
position: (id as u32).to_string(),
7294
}),
@@ -84,6 +106,12 @@ impl Position {
84106
Position::TE => 4,
85107
Position::DEF => 16,
86108
Position::K => 5,
109+
Position::P => 7,
110+
Position::DT => 9,
111+
Position::DE => 10,
112+
Position::LB => 11,
113+
Position::DB => 12,
114+
Position::S => 13,
87115
Position::FLEX => 23, // ESPN's FLEX position ID
88116
Position::BE => 20, // ESPN's Bench position ID
89117
Position::IR => 21, // ESPN's IR position ID
@@ -100,6 +128,12 @@ impl fmt::Display for Position {
100128
Position::TE => "TE",
101129
Position::DEF => "D/ST",
102130
Position::K => "K",
131+
Position::P => "P",
132+
Position::DT => "DT",
133+
Position::DE => "DE",
134+
Position::LB => "LB",
135+
Position::DB => "DB",
136+
Position::S => "S",
103137
Position::FLEX => "FLEX",
104138
Position::BE => "BE",
105139
Position::IR => "IR",
@@ -119,6 +153,12 @@ impl FromStr for Position {
119153
"TE" => Ok(Position::TE),
120154
"DEF" | "D/ST" | "DST" => Ok(Position::DEF),
121155
"K" => Ok(Position::K),
156+
"P" => Ok(Position::P),
157+
"DT" => Ok(Position::DT),
158+
"DE" => Ok(Position::DE),
159+
"LB" => Ok(Position::LB),
160+
"DB" => Ok(Position::DB),
161+
"S" => Ok(Position::S),
122162
"FLEX" => Ok(Position::FLEX),
123163
"BE" | "BENCH" => Ok(Position::BE),
124164
"IR" => Ok(Position::IR),

0 commit comments

Comments
 (0)