|
1 | | -use aws_sdk_dynamodb::model::AttributeValue; |
2 | | -use aws_sdk_dynamodb::{Client, Error as OtherError}; |
| 1 | +use aws_sdk_dynamodb::{Client}; |
3 | 2 | use lambda_http::{run, service_fn, Body, Error, Request, Response}; |
| 3 | +use serde::{Deserialize, Serialize}; |
| 4 | +use serde_dynamo::to_attribute_value; |
4 | 5 | use tracing::info; |
5 | 6 |
|
6 | | -#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] |
| 7 | +#[derive(Clone, Debug, Serialize, Deserialize)] |
7 | 8 | pub struct Item { |
8 | 9 | pub p_type: String, |
9 | 10 | pub age: String, |
@@ -76,12 +77,12 @@ async fn main() -> Result<(), Error> { |
76 | 77 |
|
77 | 78 | // Add an item to a table. |
78 | 79 | // snippet-start:[dynamodb.rust.add-item] |
79 | | -pub async fn add_item(client: &Client, item: Item, table: &str) -> Result<(), OtherError> { |
80 | | - let user_av = AttributeValue::S(item.username); |
81 | | - let type_av = AttributeValue::S(item.p_type); |
82 | | - let age_av = AttributeValue::S(item.age); |
83 | | - let first_av = AttributeValue::S(item.first); |
84 | | - let last_av = AttributeValue::S(item.last); |
| 80 | +pub async fn add_item(client: &Client, item: Item, table: &str) -> Result<(), Error> { |
| 81 | + let user_av = to_attribute_value(item.username)?; |
| 82 | + let type_av = to_attribute_value(item.p_type)?; |
| 83 | + let age_av = to_attribute_value(item.age)?; |
| 84 | + let first_av = to_attribute_value(item.first)?; |
| 85 | + let last_av = to_attribute_value(item.last)?; |
85 | 86 |
|
86 | 87 | let request = client |
87 | 88 | .put_item() |
|
0 commit comments