chore: rework oauth2 route scoping
This commit is contained in:
@@ -203,7 +203,13 @@ fn custom_openapi_spec() -> OpenApi {
|
||||
"Sync",
|
||||
"Web Push"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "OAuth2",
|
||||
"tags": [
|
||||
"OAuth2",
|
||||
]
|
||||
},
|
||||
]),
|
||||
);
|
||||
|
||||
@@ -375,6 +381,11 @@ fn custom_openapi_spec() -> OpenApi {
|
||||
description: Some("Send messages from 3rd party services".to_owned()),
|
||||
..Default::default()
|
||||
},
|
||||
Tag {
|
||||
name: "OAuth2".to_owned(),
|
||||
description: Some("Integrate Revolt into 3rd party applications".to_owned()),
|
||||
..Default::default()
|
||||
},
|
||||
],
|
||||
..Default::default()
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference},
|
||||
util::{oauth2::{scopes, OAuth2Scoped}, permissions::DatabasePermissionQuery, reference::Reference},
|
||||
Database, User,
|
||||
};
|
||||
use revolt_models::v0;
|
||||
@@ -14,6 +14,7 @@ use rocket::{serde::json::Json, State};
|
||||
#[get("/<target>?<options..>")]
|
||||
pub async fn fetch_server(
|
||||
db: &State<Database>,
|
||||
_oauth2_scope: OAuth2Scoped<scopes::ReadServers>,
|
||||
user: User,
|
||||
target: Reference<'_>,
|
||||
options: v0::OptionsFetchServer,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use revolt_database::User;
|
||||
use revolt_database::{User, util::oauth2::{OAuth2Scoped, scopes}};
|
||||
use revolt_models::v0;
|
||||
use revolt_result::Result;
|
||||
use rocket::serde::json::Json;
|
||||
@@ -8,6 +8,9 @@ use rocket::serde::json::Json;
|
||||
/// Retrieve your user information.
|
||||
#[openapi(tag = "User Information")]
|
||||
#[get("/@me")]
|
||||
pub async fn fetch_self(user: User) -> Result<Json<v0::User>> {
|
||||
pub async fn fetch_self(
|
||||
_oauth2_scope: OAuth2Scoped<scopes::ReadIdentify>,
|
||||
user: User
|
||||
) -> Result<Json<v0::User>> {
|
||||
Ok(Json(user.into_self(false).await))
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use revolt_database::{util::permissions::DatabasePermissionQuery, Database, User};
|
||||
use revolt_database::{util::{oauth2::{scopes, OAuth2Scoped}, permissions::DatabasePermissionQuery}, Database, User};
|
||||
use revolt_models::v0;
|
||||
use revolt_permissions::{calculate_channel_permissions, ChannelPermission};
|
||||
use revolt_result::Result;
|
||||
@@ -11,6 +11,7 @@ use rocket::{serde::json::Json, State};
|
||||
#[get("/@me/servers?<options..>")]
|
||||
pub async fn fetch_self_servers(
|
||||
db: &State<Database>,
|
||||
_oauth2_scope: OAuth2Scoped<scopes::ReadServers>,
|
||||
user: User,
|
||||
options: v0::OptionsFetchServer,
|
||||
) -> Result<Json<Vec<v0::FetchServerResponse>>> {
|
||||
|
||||
Reference in New Issue
Block a user