From 51c8b5c7b3e9da1105e9f2550a02dbcb77db7b4d Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 19 Oct 2025 01:45:35 +0000 Subject: [PATCH] tsk-73: Change data type of song from string to date (#77) Closes #73 Reviewed-on: https://git.kundeng.us/phoenix/icarus_models/pulls/77 Co-authored-by: phoenix Co-committed-by: phoenix --- .gitea/workflows/tag_release.yaml | 13 +++++++++---- Cargo.lock | 2 +- Cargo.toml | 2 +- src/song.rs | 21 +++++++++++---------- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/tag_release.yaml b/.gitea/workflows/tag_release.yaml index 52ebe9c..717f9ac 100644 --- a/.gitea/workflows/tag_release.yaml +++ b/.gitea/workflows/tag_release.yaml @@ -1,10 +1,12 @@ name: Release Tagging on: + push: + branches: + - next-v0.8 pull_request: branches: - main - - next-v0.8 jobs: release: @@ -26,12 +28,15 @@ jobs: run: | VERSION=$(grep '^version = "' Cargo.toml | sed -E 's/version = "([^"]+)"/\1/') PROJECT_COMMIT_HASH=$(git rev-parse HEAD | cut -c 1-10) - BRANCH_REF="${GITHUB_REF}" + BRANCH_REF="${{ gitea.ref }}" BRANCH_NAME=$(echo "$BRANCH_REF" | cut -d '/' -f 3) - PROJECT_TAG_RELEASE="v$VERSION-$BRANCH_NAME-$PROJECT_COMMIT_HASH" - echo "::set-output name=project_tag_release::$PROJECT_TAG_RELEASE-111" + PROJECT_TAG_RELEASE="v$VERSION-$BRANCH_NAME-$PROJECT_COMMIT_HASH-111" + + echo "::set-output name=project_tag_release::$PROJECT_TAG_RELEASE" + echo "Version: $VERSION" echo "Hash: $PROJECT_COMMIT_HASH" + echo "Branh ref: $BRANCH_REF" echo "Branch: $BRANCH_NAME" echo "Tag Release: $PROJECT_TAG_RELEASE" diff --git a/Cargo.lock b/Cargo.lock index 9b33e3e..8cf848a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -149,7 +149,7 @@ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "icarus_models" -version = "0.7.1" +version = "0.7.2" dependencies = [ "josekit", "rand", diff --git a/Cargo.toml b/Cargo.toml index 5637ea4..54a405f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_models" -version = "0.7.1" +version = "0.7.2" edition = "2024" rust-version = "1.90" description = "models used for the icarus project" diff --git a/src/song.rs b/src/song.rs index 230b516..af0f209 100644 --- a/src/song.rs +++ b/src/song.rs @@ -39,8 +39,8 @@ pub struct Song { pub track_count: i32, #[serde(skip_serializing_if = "String::is_empty")] pub audio_type: String, - #[serde(skip_serializing_if = "String::is_empty")] - pub date_created: String, + #[serde(with = "time::serde::rfc3339::option")] + pub date_created: Option, #[serde(skip_serializing_if = "String::is_empty")] pub filename: String, #[serde(skip_serializing_if = "init::is_uuid_nil")] @@ -71,21 +71,22 @@ impl Song { pub fn song_path(&self) -> Result { if self.directory.is_empty() { - return Err(std::io::Error::other("Directory does not exist")); + return Err(std::io::Error::other("Directory has not been initialized")); + } else if self.filename.is_empty() { + return Err(std::io::Error::other("Filename has not bee initialized")); } let directory = &self.directory; - let mut buffer: String = directory.clone(); let last_index = directory.len() - 1; if let Some(character) = directory.chars().nth(last_index) { - if character != '/' { - buffer += "/"; - } + let buffer: String = if character != '/' { + directory.clone() + "/" + } else { + directory.clone() + }; - buffer += &self.filename.clone(); - - Ok(buffer) + Ok(buffer + &self.filename.clone()) } else { Err(std::io::Error::other( "Could not access last character of directory",