Skip to content

Commit 9fe1429

Browse files
authored
Merge pull request #26 from rust-lang/tag-command
tags tune up
2 parents 6cfb6c5 + 8cb7fb3 commit 9fe1429

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ fn app() -> Result {
6868
let mut cmds = Commands::new();
6969

7070
// Tags
71+
cmds.add("?tag {key}", tags::get);
7172
cmds.add("?tags get {key}", tags::get);
7273
cmds.add("?tags delete {key}", tags::delete);
7374
cmds.add("?tags create {key} value...", tags::post);

src/tags.rs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,22 @@ use crate::{
88
use diesel::prelude::*;
99

1010
/// Remove a key value pair from the tags.
11-
pub fn delete<'m>(args: Args<'m>) -> Result<()> {
11+
pub fn delete(args: Args) -> Result<()> {
1212
let conn = DB.get()?;
1313
let key = args
1414
.params
1515
.get("key")
1616
.ok_or("Unable to retrieve param: key")?;
1717

18-
diesel::delete(tags::table.filter(tags::key.eq(key))).execute(&conn)?;
18+
match diesel::delete(tags::table.filter(tags::key.eq(key))).execute(&conn) {
19+
Ok(_) => args.msg.react(&args.cx, "✅")?,
20+
Err(_) => args.msg.react(&args.cx, "❌")?,
21+
}
1922
Ok(())
2023
}
2124

2225
/// Add a key value pair to the tags.
23-
pub fn post<'m>(args: Args<'m>) -> Result<()> {
26+
pub fn post(args: Args) -> Result<()> {
2427
let conn = DB.get()?;
2528

2629
let key = args
@@ -33,15 +36,19 @@ pub fn post<'m>(args: Args<'m>) -> Result<()> {
3336
.get("value")
3437
.ok_or("Unable to retrieve param: value")?;
3538

36-
diesel::insert_into(tags::table)
39+
match diesel::insert_into(tags::table)
3740
.values((tags::key.eq(key), tags::value.eq(value)))
38-
.execute(&conn)?;
41+
.execute(&conn)
42+
{
43+
Ok(_) => args.msg.react(&args.cx, "✅")?,
44+
Err(_) => args.msg.react(&args.cx, "❌")?,
45+
}
3946

4047
Ok(())
4148
}
4249

4350
/// Retrieve a value by key from the tags.
44-
pub fn get<'m>(args: Args<'m>) -> Result<()> {
51+
pub fn get(args: Args) -> Result<()> {
4552
let conn = DB.get()?;
4653

4754
let key = args.params.get("key").ok_or("unable to read params")?;
@@ -60,7 +67,7 @@ pub fn get<'m>(args: Args<'m>) -> Result<()> {
6067
}
6168

6269
/// Retrieve all tags
63-
pub fn get_all<'m>(args: Args<'m>) -> Result<()> {
70+
pub fn get_all(args: Args) -> Result<()> {
6471
let conn = DB.get()?;
6572

6673
let results = tags::table.load::<(i32, String, String)>(&conn)?;
@@ -81,6 +88,7 @@ pub fn get_all<'m>(args: Args<'m>) -> Result<()> {
8188
/// Print the help message
8289
pub fn help(args: Args) -> Result<()> {
8390
let help_string = "```
91+
?tag {key}
8492
?tags get {key}
8593
?tags get-all
8694
?tags create {key} value...

0 commit comments

Comments
 (0)