diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index 7adfe62..5779344 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -5,7 +5,7 @@ branches: pipeline: build: - image: 'rust:1.76' + image: 'rust:1.69' commands: - cargo build --verbose - cargo test --verbose diff --git a/.woodpecker/clippy.yml b/.woodpecker/clippy.yml index d34cdf6..92851e5 100644 --- a/.woodpecker/clippy.yml +++ b/.woodpecker/clippy.yml @@ -5,7 +5,7 @@ branches: pipeline: clippy: - image: 'rust:1.76' + image: 'rust:1.69' commands: - rustup component add clippy - cargo clippy -- --no-deps -Dwarnings diff --git a/.woodpecker/deploy.yml b/.woodpecker/deploy.yml index 7be1e36..1fd44e2 100644 --- a/.woodpecker/deploy.yml +++ b/.woodpecker/deploy.yml @@ -14,9 +14,9 @@ pipeline: - 'docker_username' - 'docker_password' - # deploy: - # image: 'curlimages/curl' - # secrets: - # - 'webhook' - # commands: - # - curl -XPOST --fail -s "$WEBHOOK" + deploy: + image: 'curlimages/curl' + secrets: + - 'webhook' + commands: + - curl -XPOST --fail -s "$WEBHOOK" diff --git a/.woodpecker/lint.yml b/.woodpecker/lint.yml index 89c1d62..ad2b612 100644 --- a/.woodpecker/lint.yml +++ b/.woodpecker/lint.yml @@ -5,7 +5,7 @@ branches: pipeline: lint: - image: 'rust:1.76' + image: 'rust:1.69' commands: - rustup component add rustfmt - cargo fmt -- --check diff --git a/Cargo.lock b/Cargo.lock index 31b1f33..1237a05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,9 @@ name = "affluences-cli" version = "0.1.0" dependencies = [ "affluences-api", - "chrono", "clap", "serde_json", "tokio", - "uuid", ] [[package]] diff --git a/Dockerfile b/Dockerfile index 12e9300..9d47548 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.76-alpine AS builder +FROM rust:1.69-alpine AS builder ARG DI_VER=1.2.5 diff --git a/affluences-api/src/models/available.rs b/affluences-api/src/models/available.rs index ced3836..e10052c 100644 --- a/affluences-api/src/models/available.rs +++ b/affluences-api/src/models/available.rs @@ -1,19 +1,12 @@ use super::hh_mm_time_format; use chrono::{Duration, NaiveTime}; -use serde::{Deserialize, Serialize}; +use serde::Deserialize; -#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq)] -#[serde(rename_all = "lowercase")] -pub enum ResourceState { - Available, - Full, -} - -#[derive(Serialize, Deserialize, Debug, Clone, Copy)] +#[derive(Deserialize, Debug, Clone, Copy)] pub struct HourBlock { #[serde(with = "hh_mm_time_format")] pub hour: NaiveTime, - pub state: ResourceState, + pub state: u32, // reservations pub granularity: u32, pub person_count: u32, @@ -21,7 +14,7 @@ pub struct HourBlock { pub places_bookable: u32, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Deserialize, Debug)] pub struct Resource { pub resource_id: u32, pub resource_name: String, @@ -45,7 +38,7 @@ pub struct Resource { // max_places_per_reservation pub image_url: Option, // services - pub slots_state: ResourceState, + pub slots_state: u32, pub hours: Vec, } @@ -77,18 +70,13 @@ impl Resource { pub fn condensed_available_hours(&self) -> Vec<(&HourBlock, Duration)> { self.condensed_hours() .into_iter() - .filter(|(hour, _)| hour.state == ResourceState::Available) + .filter(|(hour, _)| hour.state == 1) .collect() } /// Returns whether a slot with the given state and time bounds is present in the list of /// hours. - pub fn has_slot( - &self, - start_time: NaiveTime, - end_time: NaiveTime, - state: ResourceState, - ) -> bool { + pub fn has_slot(&self, start_time: NaiveTime, end_time: NaiveTime, state: u32) -> bool { self.condensed_hours() .into_iter() .filter(|(block, _)| block.state == state) diff --git a/affluences-cli/Cargo.toml b/affluences-cli/Cargo.toml index f9aa8b1..f46a340 100644 --- a/affluences-cli/Cargo.toml +++ b/affluences-cli/Cargo.toml @@ -10,5 +10,3 @@ affluences-api = { path = "../affluences-api" } clap = { version = "4.2.7", features = ["derive"] } serde_json = "1.0.96" tokio = { version = "1.28.1", features = ["full"] } -uuid = "*" -chrono = "*" diff --git a/affluences-cli/src/main.rs b/affluences-cli/src/main.rs index afd9b29..3b31cb5 100644 --- a/affluences-cli/src/main.rs +++ b/affluences-cli/src/main.rs @@ -1,9 +1,5 @@ use affluences_api::AffluencesClient; -use chrono::NaiveDate; use clap::{Parser, Subcommand}; -use uuid::{uuid, Uuid}; - -const STERRE_BIB_ID: Uuid = uuid!("4737e57a-ee05-4f7b-901a-7bb541eeb297"); #[derive(Parser)] #[command(author, version, about, long_about = None)] @@ -15,10 +11,7 @@ struct Cli { #[derive(Subcommand)] enum Commands { /// does testing things - SearchSite { - query: String, - }, - Available, + SearchSite { query: String }, } #[tokio::main] @@ -32,14 +25,6 @@ async fn main() { let s = serde_json::to_string_pretty(&res).unwrap(); println!("{}", s); } - Some(Commands::Available) => { - let res = client - .available(STERRE_BIB_ID, chrono::Utc::now().naive_utc().date(), 1) - .await - .unwrap(); - let s = serde_json::to_string_pretty(&res).unwrap(); - println!("{}", s); - } None => {} } } diff --git a/src/commands/bib.rs b/src/commands/bib.rs index f5f68f7..9f28cee 100644 --- a/src/commands/bib.rs +++ b/src/commands/bib.rs @@ -2,7 +2,7 @@ use crate::commands::{EmbedField, HumanNaiveDate}; use crate::db::users::User; use crate::{Context, Error}; -use affluences_api::{Reservation, Resource, ResourceState}; +use affluences_api::{Reservation, Resource}; use chrono::{NaiveDate, NaiveTime}; use uuid::{uuid, Uuid}; @@ -109,7 +109,7 @@ pub async fn book( let chosen_resource = resources .iter() .filter(|r| capacity.is_none() || capacity.unwrap() <= r.capacity) - .find(|r| r.has_slot(start_time, end_time, ResourceState::Available)); + .find(|r| r.has_slot(start_time, end_time, 1)); if let Some(chosen_resource) = chosen_resource { let reservation = Reservation {