1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
use crate::client::Graph; use crate::core::ResourceIdentity; use crate::posts::{PostRequest, PostsRequest}; use graph_http::types::Collection; use graph_http::types::Content; use graph_http::GraphResponse; use graph_http::IntoResponse; use handlebars::*; use reqwest::Method; register_client!(ThreadRequest,); register_client!(ThreadsRequest, ()); impl<'a, Client> ThreadRequest<'a, Client> where Client: graph_http::RequestClient, { pub fn id<ID: AsRef<str>>(&self, id: ID) -> ThreadsRequest<'a, Client> { self.client.set_ident(ResourceIdentity::Threads); ThreadsRequest::new(id.as_ref(), self.client) } get!({ doc: "# Get threads from groups", name: list_threads, response: Collection<serde_json::Value>, path: "/threads", params: 0, has_body: false }); post!({ doc: "# Create new navigation property to threads for groups", name: create_threads, response: serde_json::Value, path: "/threads", params: 0, has_body: true }); } impl<'a, Client> ThreadsRequest<'a, Client> where Client: graph_http::RequestClient, { pub fn posts(&self) -> PostRequest<'a, Client> { self.client .request .extend_path(&[self.client.ident().as_ref(), self.id.as_str()]); PostRequest::new(self.client) } pub fn post<ID: AsRef<str>>(&self, id: ID) -> PostsRequest<'a, Client> { self.client .request .extend_path(&[self.client.ident().as_ref(), self.id.as_str()]); self.client.set_ident(ResourceIdentity::Posts); PostsRequest::new(id.as_ref(), self.client) } get!({ doc: "# Get threads from groups", name: get_threads, response: serde_json::Value, path: "/threads/{{RID}}", params: 0, has_body: false }); patch!({ doc: "# Update the navigation property threads in groups", name: update_threads, response: GraphResponse<Content>, path: "/threads/{{RID}}", params: 0, has_body: true }); get!({ doc: "# Get posts from groups", name: list_posts, response: Collection<serde_json::Value>, path: "/threads/{{RID}}/posts", params: 0, has_body: false }); post!({ doc: "# Create new navigation property to posts for groups", name: create_posts, response: serde_json::Value, path: "/threads/{{RID}}/posts", params: 0, has_body: true }); post!({ doc: "# Invoke action reply", name: reply, response: GraphResponse<Content>, path: "/threads/{{RID}}/reply", params: 0, has_body: true }); }