about summary refs log tree commit diff stats
path: root/pkgs/by-name/ba/back/src/git_bug/issue/operation
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ba/back/src/git_bug/issue/operation')
-rw-r--r--pkgs/by-name/ba/back/src/git_bug/issue/operation/mod.rs124
-rw-r--r--pkgs/by-name/ba/back/src/git_bug/issue/operation/operation_type.rs51
2 files changed, 0 insertions, 175 deletions
diff --git a/pkgs/by-name/ba/back/src/git_bug/issue/operation/mod.rs b/pkgs/by-name/ba/back/src/git_bug/issue/operation/mod.rs
deleted file mode 100644
index 7f861a7..0000000
--- a/pkgs/by-name/ba/back/src/git_bug/issue/operation/mod.rs
+++ /dev/null
@@ -1,124 +0,0 @@
-// Back - An extremely simple git issue tracking system. Inspired by tvix's
-// panettone
-//
-// Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-// SPDX-License-Identifier: AGPL-3.0-or-later
-//
-// This file is part of Back.
-//
-// You should have received a copy of the License along with this program.
-// If not, see <https://www.gnu.org/licenses/agpl.txt>.
-
-use std::convert::Infallible;
-
-use operation_type::OperationType;
-use serde::Deserialize;
-use serde_json::Value;
-
-use crate::{
-    get,
-    git_bug::format::{MarkDown, TimeStamp},
-};
-
-use super::{entity, label::Label, Status};
-
-pub mod operation_type;
-
-#[derive(Deserialize, Debug)]
-#[serde(try_from = "Value")]
-pub enum Operation {
-    AddComment {
-        timestamp: TimeStamp,
-        message: MarkDown,
-    },
-    Create {
-        timestamp: TimeStamp,
-        title: MarkDown,
-        message: MarkDown,
-    },
-    EditComment {
-        timestamp: TimeStamp,
-        target: entity::Id,
-        message: MarkDown,
-    },
-    LabelChange {
-        timestamp: TimeStamp,
-        added: Vec<Label>,
-        removed: Vec<Label>,
-    },
-    SetStatus {
-        timestamp: TimeStamp,
-        status: Status,
-    },
-    SetTitle {
-        timestamp: TimeStamp,
-        title: MarkDown,
-        was: MarkDown,
-    },
-
-    // These seem to be just weird non-operation, operations.
-    // defined in: git-bug/entities/bug/operation.go
-    NoOp {},
-    SetMetadata {},
-}
-
-impl TryFrom<Value> for Operation {
-    type Error = Infallible;
-
-    fn try_from(value: Value) -> Result<Self, Self::Error> {
-        let operation_type = OperationType::from_json_int(
-            value
-                .get("type")
-                .expect("Should exist")
-                .as_u64()
-                .expect("This should work"),
-        );
-
-        let op = match operation_type {
-            OperationType::AddComment => Self::AddComment {
-                timestamp: get! {value, "timestamp" },
-                message: get! {value, "message"},
-            },
-            OperationType::Create => Self::Create {
-                timestamp: get! {value, "timestamp"},
-                title: get! {value, "title"},
-                message: get! {value, "message"},
-            },
-            OperationType::EditComment => Self::EditComment {
-                timestamp: get! {value, "timestamp"},
-                target: get! {value, "target"},
-                message: get! {value, "message"},
-            },
-            OperationType::LabelChange => Self::LabelChange {
-                timestamp: get! {value, "timestamp"},
-                added: serde_json::from_value(
-                    value
-                        .get("added")
-                        .expect("This should be available")
-                        .to_owned(),
-                )
-                .expect("This should be parsable"),
-                removed: serde_json::from_value(
-                    value
-                        .get("removed")
-                        .expect("This should be available")
-                        .to_owned(),
-                )
-                .expect("This should be parsable"),
-            },
-            OperationType::SetStatus => Self::SetStatus {
-                timestamp: get! {value, "timestamp"},
-                status: get! {value, "status"},
-            },
-            OperationType::SetTitle => Self::SetTitle {
-                timestamp: get! {value, "timestamp"},
-                title: get! {value, "title"},
-                was: get! {value, "was"},
-            },
-            OperationType::NoOp => Self::NoOp {},
-            OperationType::SetMetadata => Self::SetMetadata {},
-        };
-
-        Ok(op)
-    }
-}
diff --git a/pkgs/by-name/ba/back/src/git_bug/issue/operation/operation_type.rs b/pkgs/by-name/ba/back/src/git_bug/issue/operation/operation_type.rs
deleted file mode 100644
index 69d272f..0000000
--- a/pkgs/by-name/ba/back/src/git_bug/issue/operation/operation_type.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-// Back - An extremely simple git issue tracking system. Inspired by tvix's
-// panettone
-//
-// Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-// SPDX-License-Identifier: AGPL-3.0-or-later
-//
-// This file is part of Back.
-//
-// You should have received a copy of the License along with this program.
-// If not, see <https://www.gnu.org/licenses/agpl.txt>.
-
-pub enum OperationType {
-    AddComment,
-    Create,
-    EditComment,
-    LabelChange,
-    NoOp,
-    SetMetadata,
-    SetStatus,
-    SetTitle,
-}
-
-impl OperationType {
-    // NOTE(@bpeetz): This mapping should always be the same as `git_bug`'s.
-    // The mapping is defined in `git-bug/entities/bug/operation.go`. <2024-12-26>
-    pub fn to_json_int(self) -> u64 {
-        match self {
-            OperationType::Create => 1,
-            OperationType::SetTitle => 2,
-            OperationType::AddComment => 3,
-            OperationType::SetStatus => 4,
-            OperationType::LabelChange => 5,
-            OperationType::EditComment => 6,
-            OperationType::NoOp => 7,
-            OperationType::SetMetadata => 8,
-        }
-    }
-    pub fn from_json_int(value: u64) -> Self {
-        match value {
-            1 => OperationType::Create,
-            2 => OperationType::SetTitle,
-            3 => OperationType::AddComment,
-            4 => OperationType::SetStatus,
-            5 => OperationType::LabelChange,
-            6 => OperationType::EditComment,
-            7 => OperationType::NoOp,
-            8 => OperationType::SetMetadata,
-            other => unimplemented!("The operation type {other} is not recognized."),
-        }
-    }
-}