From 8d36b0b75904812ba8f6b9e38b50660dfbe78d0d Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Sat, 24 Aug 2024 21:42:01 +0200 Subject: Add new position ``` curl -X POST http://localhost:8000/graphql \ -H "Content-Type: application/json" \ -H "Authorization: Bearer TOKEN" \ -d '{ "query": "mutation NewPosition($input: PositionInput!) { newPosition(input: $input) { id userId createdAt latitude longitude movingActivity } }", "variables": { "input": { "latitude": 44.502952, "longitude": 11.3114988, "movingActivity": "IN_VEHICLE" } } }' ``` --- src/graphql/types/position.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/graphql/types') diff --git a/src/graphql/types/position.rs b/src/graphql/types/position.rs index 5807534..8610fcb 100644 --- a/src/graphql/types/position.rs +++ b/src/graphql/types/position.rs @@ -1,5 +1,5 @@ use crate::{dates::GraphQLDate, graphql::types::jwt::Authentication, state::AppState}; -use async_graphql::{Context, Enum, Object}; +use async_graphql::{Context, Enum, InputObject, Object}; use chrono::Utc; use serde::{Deserialize, Serialize}; use std::error::Error; @@ -78,6 +78,14 @@ pub struct Position { pub moving_activity: MovingActivity, } +#[derive(InputObject)] +/// Position input struct +pub struct PositionInput { + pub latitude: f64, + pub longitude: f64, + pub moving_activity: MovingActivity, +} + #[Object] impl Position { async fn id(&self) -> i32 { -- cgit v1.2.3-71-g8e6c