Commit fff42ebc authored by Steven's avatar Steven

fix: check auth status

parent 2437419b
......@@ -3,16 +3,18 @@ package v2
import (
"context"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
apiv2pb "github.com/usememos/memos/proto/gen/api/v2"
)
func (s *APIV2Service) GetAuthStatus(ctx context.Context, _ *apiv2pb.GetAuthStatusRequest) (*apiv2pb.GetAuthStatusResponse, error) {
ok := true
user, err := getCurrentUser(ctx, s.Store)
if err != nil || user == nil {
ok = false
if err != nil {
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
}
return &apiv2pb.GetAuthStatusResponse{
Ok: ok,
User: convertUserFromStore(user),
}, nil
}
......@@ -2,6 +2,7 @@ syntax = "proto3";
package memos.api.v2;
import "api/v2/user_service.proto";
import "google/api/annotations.proto";
option go_package = "gen/api/v2";
......@@ -15,5 +16,5 @@ service AuthService {
message GetAuthStatusRequest {}
message GetAuthStatusResponse {
bool ok = 1;
User user = 1;
}
......@@ -13,15 +13,37 @@
- [ActivityService](#memos-api-v2-ActivityService)
- [api/v2/common.proto](#api_v2_common-proto)
- [RowStatus](#memos-api-v2-RowStatus)
- [api/v2/user_service.proto](#api_v2_user_service-proto)
- [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest)
- [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse)
- [CreateUserRequest](#memos-api-v2-CreateUserRequest)
- [CreateUserResponse](#memos-api-v2-CreateUserResponse)
- [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest)
- [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse)
- [DeleteUserRequest](#memos-api-v2-DeleteUserRequest)
- [DeleteUserResponse](#memos-api-v2-DeleteUserResponse)
- [GetUserRequest](#memos-api-v2-GetUserRequest)
- [GetUserResponse](#memos-api-v2-GetUserResponse)
- [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest)
- [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse)
- [UpdateUserRequest](#memos-api-v2-UpdateUserRequest)
- [UpdateUserResponse](#memos-api-v2-UpdateUserResponse)
- [User](#memos-api-v2-User)
- [UserAccessToken](#memos-api-v2-UserAccessToken)
- [User.Role](#memos-api-v2-User-Role)
- [UserService](#memos-api-v2-UserService)
- [api/v2/auth_service.proto](#api_v2_auth_service-proto)
- [GetAuthStatusRequest](#memos-api-v2-GetAuthStatusRequest)
- [GetAuthStatusResponse](#memos-api-v2-GetAuthStatusResponse)
- [AuthService](#memos-api-v2-AuthService)
- [api/v2/common.proto](#api_v2_common-proto)
- [RowStatus](#memos-api-v2-RowStatus)
- [api/v2/inbox_service.proto](#api_v2_inbox_service-proto)
- [DeleteInboxRequest](#memos-api-v2-DeleteInboxRequest)
- [DeleteInboxResponse](#memos-api-v2-DeleteInboxResponse)
......@@ -88,28 +110,6 @@
- [TagService](#memos-api-v2-TagService)
- [api/v2/user_service.proto](#api_v2_user_service-proto)
- [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest)
- [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse)
- [CreateUserRequest](#memos-api-v2-CreateUserRequest)
- [CreateUserResponse](#memos-api-v2-CreateUserResponse)
- [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest)
- [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse)
- [DeleteUserRequest](#memos-api-v2-DeleteUserRequest)
- [DeleteUserResponse](#memos-api-v2-DeleteUserResponse)
- [GetUserRequest](#memos-api-v2-GetUserRequest)
- [GetUserResponse](#memos-api-v2-GetUserResponse)
- [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest)
- [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse)
- [UpdateUserRequest](#memos-api-v2-UpdateUserRequest)
- [UpdateUserResponse](#memos-api-v2-UpdateUserResponse)
- [User](#memos-api-v2-User)
- [UserAccessToken](#memos-api-v2-UserAccessToken)
- [User.Role](#memos-api-v2-User-Role)
- [UserService](#memos-api-v2-UserService)
- [api/v2/webhook_service.proto](#api_v2_webhook_service-proto)
- [CreateWebhookRequest](#memos-api-v2-CreateWebhookRequest)
- [CreateWebhookResponse](#memos-api-v2-CreateWebhookResponse)
......@@ -252,57 +252,6 @@
<a name="api_v2_auth_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/auth_service.proto
<a name="memos-api-v2-GetAuthStatusRequest"></a>
### GetAuthStatusRequest
<a name="memos-api-v2-GetAuthStatusResponse"></a>
### GetAuthStatusResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| ok | [bool](#bool) | | |
<a name="memos-api-v2-AuthService"></a>
### AuthService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetAuthStatus | [GetAuthStatusRequest](#memos-api-v2-GetAuthStatusRequest) | [GetAuthStatusResponse](#memos-api-v2-GetAuthStatusResponse) | |
<a name="api_v2_common-proto"></a>
<p align="right"><a href="#top">Top</a></p>
......@@ -332,630 +281,688 @@
<a name="api_v2_inbox_service-proto"></a>
<a name="api_v2_user_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/inbox_service.proto
## api/v2/user_service.proto
<a name="memos-api-v2-DeleteInboxRequest"></a>
<a name="memos-api-v2-CreateUserAccessTokenRequest"></a>
### DeleteInboxRequest
### CreateUserAccessTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the inbox to delete. Format: inboxes/{inbox} |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| description | [string](#string) | | |
| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | optional | |
<a name="memos-api-v2-DeleteInboxResponse"></a>
<a name="memos-api-v2-CreateUserAccessTokenResponse"></a>
### DeleteInboxResponse
### CreateUserAccessTokenResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| access_token | [UserAccessToken](#memos-api-v2-UserAccessToken) | | |
<a name="memos-api-v2-Inbox"></a>
### Inbox
<a name="memos-api-v2-CreateUserRequest"></a>
### CreateUserRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the inbox. Format: inboxes/{id} |
| sender | [string](#string) | | Format: users/{username} |
| receiver | [string](#string) | | Format: users/{username} |
| status | [Inbox.Status](#memos-api-v2-Inbox-Status) | | |
| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| type | [Inbox.Type](#memos-api-v2-Inbox-Type) | | |
| activity_id | [int32](#int32) | optional | |
| user | [User](#memos-api-v2-User) | | |
<a name="memos-api-v2-ListInboxesRequest"></a>
<a name="memos-api-v2-CreateUserResponse"></a>
### ListInboxesRequest
### CreateUserResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [string](#string) | | Format: users/{username} |
| user | [User](#memos-api-v2-User) | | |
<a name="memos-api-v2-ListInboxesResponse"></a>
<a name="memos-api-v2-DeleteUserAccessTokenRequest"></a>
### ListInboxesResponse
### DeleteUserAccessTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| inboxes | [Inbox](#memos-api-v2-Inbox) | repeated | |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| access_token | [string](#string) | | access_token is the access token to delete. |
<a name="memos-api-v2-UpdateInboxRequest"></a>
### UpdateInboxRequest
<a name="memos-api-v2-DeleteUserAccessTokenResponse"></a>
### DeleteUserAccessTokenResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| inbox | [Inbox](#memos-api-v2-Inbox) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
<a name="memos-api-v2-UpdateInboxResponse"></a>
<a name="memos-api-v2-DeleteUserRequest"></a>
### UpdateInboxResponse
### DeleteUserRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| inbox | [Inbox](#memos-api-v2-Inbox) | | |
| name | [string](#string) | | The name of the user. Format: users/{username} |
<a name="memos-api-v2-Inbox-Status"></a>
<a name="memos-api-v2-DeleteUserResponse"></a>
### Inbox.Status
### DeleteUserResponse
| Name | Number | Description |
| ---- | ------ | ----------- |
| STATUS_UNSPECIFIED | 0 | |
| UNREAD | 1 | |
| ARCHIVED | 2 | |
<a name="memos-api-v2-Inbox-Type"></a>
### Inbox.Type
<a name="memos-api-v2-GetUserRequest"></a>
| Name | Number | Description |
| ---- | ------ | ----------- |
| TYPE_UNSPECIFIED | 0 | |
| TYPE_MEMO_COMMENT | 1 | |
| TYPE_VERSION_UPDATE | 2 | |
### GetUserRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
<a name="memos-api-v2-InboxService"></a>
### InboxService
<a name="memos-api-v2-GetUserResponse"></a>
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| ListInboxes | [ListInboxesRequest](#memos-api-v2-ListInboxesRequest) | [ListInboxesResponse](#memos-api-v2-ListInboxesResponse) | |
| UpdateInbox | [UpdateInboxRequest](#memos-api-v2-UpdateInboxRequest) | [UpdateInboxResponse](#memos-api-v2-UpdateInboxResponse) | |
| DeleteInbox | [DeleteInboxRequest](#memos-api-v2-DeleteInboxRequest) | [DeleteInboxResponse](#memos-api-v2-DeleteInboxResponse) | |
### GetUserResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User](#memos-api-v2-User) | | |
<a name="api_v2_memo_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/memo_service.proto
<a name="memos-api-v2-CreateMemoCommentRequest"></a>
<a name="memos-api-v2-ListUserAccessTokensRequest"></a>
### CreateMemoCommentRequest
### ListUserAccessTokensRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | id is the memo id to create comment for. |
| create | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | | |
| name | [string](#string) | | The name of the user. Format: users/{username} |
<a name="memos-api-v2-CreateMemoCommentResponse"></a>
<a name="memos-api-v2-ListUserAccessTokensResponse"></a>
### CreateMemoCommentResponse
### ListUserAccessTokensResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| memo | [Memo](#memos-api-v2-Memo) | | |
| access_tokens | [UserAccessToken](#memos-api-v2-UserAccessToken) | repeated | |
<a name="memos-api-v2-CreateMemoRequest"></a>
<a name="memos-api-v2-UpdateUserRequest"></a>
### CreateMemoRequest
### UpdateUserRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| content | [string](#string) | | |
| visibility | [Visibility](#memos-api-v2-Visibility) | | |
| user | [User](#memos-api-v2-User) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
<a name="memos-api-v2-CreateMemoResponse"></a>
<a name="memos-api-v2-UpdateUserResponse"></a>
### CreateMemoResponse
### UpdateUserResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| memo | [Memo](#memos-api-v2-Memo) | | |
| user | [User](#memos-api-v2-User) | | |
<a name="memos-api-v2-GetMemoRequest"></a>
<a name="memos-api-v2-User"></a>
### GetMemoRequest
### User
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| id | [int32](#int32) | | |
| role | [User.Role](#memos-api-v2-User-Role) | | |
| email | [string](#string) | | |
| nickname | [string](#string) | | |
| avatar_url | [string](#string) | | |
| password | [string](#string) | | |
| row_status | [RowStatus](#memos-api-v2-RowStatus) | | |
| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| update_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
<a name="memos-api-v2-GetMemoResponse"></a>
<a name="memos-api-v2-UserAccessToken"></a>
### GetMemoResponse
### UserAccessToken
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| memo | [Memo](#memos-api-v2-Memo) | | |
| access_token | [string](#string) | | |
| description | [string](#string) | | |
| issued_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
<a name="memos-api-v2-ListMemoCommentsRequest"></a>
### ListMemoCommentsRequest
<a name="memos-api-v2-User-Role"></a>
### User.Role
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
| Name | Number | Description |
| ---- | ------ | ----------- |
| ROLE_UNSPECIFIED | 0 | |
| HOST | 1 | |
| ADMIN | 2 | |
| USER | 3 | |
<a name="memos-api-v2-ListMemoCommentsResponse"></a>
### ListMemoCommentsResponse
<a name="memos-api-v2-UserService"></a>
### UserService
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| memos | [Memo](#memos-api-v2-Memo) | repeated | |
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetUser | [GetUserRequest](#memos-api-v2-GetUserRequest) | [GetUserResponse](#memos-api-v2-GetUserResponse) | GetUser gets a user by name. |
| CreateUser | [CreateUserRequest](#memos-api-v2-CreateUserRequest) | [CreateUserResponse](#memos-api-v2-CreateUserResponse) | CreateUser creates a new user. |
| UpdateUser | [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) | [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) | UpdateUser updates a user. |
| DeleteUser | [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) | [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) | DeleteUser deletes a user. |
| ListUserAccessTokens | [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. |
| CreateUserAccessToken | [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) | [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) | CreateUserAccessToken creates a new access token for a user. |
| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) | [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) | DeleteUserAccessToken deletes an access token for a user. |
<a name="api_v2_auth_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
<a name="memos-api-v2-ListMemosRequest"></a>
## api/v2/auth_service.proto
### ListMemosRequest
<a name="memos-api-v2-GetAuthStatusRequest"></a>
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| page | [int32](#int32) | | |
| page_size | [int32](#int32) | | |
| filter | [string](#string) | | Filter is used to filter memos returned in the list. |
| creator_id | [int32](#int32) | optional | |
### GetAuthStatusRequest
<a name="memos-api-v2-ListMemosResponse"></a>
### ListMemosResponse
<a name="memos-api-v2-GetAuthStatusResponse"></a>
### GetAuthStatusResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| memos | [Memo](#memos-api-v2-Memo) | repeated | |
| user | [User](#memos-api-v2-User) | | |
<a name="memos-api-v2-Memo"></a>
### Memo
<a name="memos-api-v2-AuthService"></a>
### AuthService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetAuthStatus | [GetAuthStatusRequest](#memos-api-v2-GetAuthStatusRequest) | [GetAuthStatusResponse](#memos-api-v2-GetAuthStatusResponse) | |
<a name="api_v2_inbox_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/inbox_service.proto
<a name="memos-api-v2-DeleteInboxRequest"></a>
### DeleteInboxRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
| row_status | [RowStatus](#memos-api-v2-RowStatus) | | |
| creator_id | [int32](#int32) | | |
| created_ts | [int64](#int64) | | |
| updated_ts | [int64](#int64) | | |
| content | [string](#string) | | |
| visibility | [Visibility](#memos-api-v2-Visibility) | | |
| pinned | [bool](#bool) | | |
| name | [string](#string) | | The name of the inbox to delete. Format: inboxes/{inbox} |
<a name="memos-api-v2-DeleteInboxResponse"></a>
### DeleteInboxResponse
<a name="memos-api-v2-Visibility"></a>
### Visibility
| Name | Number | Description |
| ---- | ------ | ----------- |
| VISIBILITY_UNSPECIFIED | 0 | |
| PRIVATE | 1 | |
| PROTECTED | 2 | |
| PUBLIC | 3 | |
<a name="memos-api-v2-Inbox"></a>
### Inbox
<a name="memos-api-v2-MemoService"></a>
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the inbox. Format: inboxes/{id} |
| sender | [string](#string) | | Format: users/{username} |
| receiver | [string](#string) | | Format: users/{username} |
| status | [Inbox.Status](#memos-api-v2-Inbox-Status) | | |
| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| type | [Inbox.Type](#memos-api-v2-Inbox-Type) | | |
| activity_id | [int32](#int32) | optional | |
### MemoService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| CreateMemo | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | [CreateMemoResponse](#memos-api-v2-CreateMemoResponse) | |
| ListMemos | [ListMemosRequest](#memos-api-v2-ListMemosRequest) | [ListMemosResponse](#memos-api-v2-ListMemosResponse) | |
| GetMemo | [GetMemoRequest](#memos-api-v2-GetMemoRequest) | [GetMemoResponse](#memos-api-v2-GetMemoResponse) | |
| CreateMemoComment | [CreateMemoCommentRequest](#memos-api-v2-CreateMemoCommentRequest) | [CreateMemoCommentResponse](#memos-api-v2-CreateMemoCommentResponse) | |
| ListMemoComments | [ListMemoCommentsRequest](#memos-api-v2-ListMemoCommentsRequest) | [ListMemoCommentsResponse](#memos-api-v2-ListMemoCommentsResponse) | |
<a name="memos-api-v2-ListInboxesRequest"></a>
### ListInboxesRequest
<a name="api_v2_resource_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/resource_service.proto
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [string](#string) | | Format: users/{username} |
<a name="memos-api-v2-CreateResourceRequest"></a>
### CreateResourceRequest
<a name="memos-api-v2-ListInboxesResponse"></a>
### ListInboxesResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| filename | [string](#string) | | |
| external_link | [string](#string) | | |
| type | [string](#string) | | |
| memo_id | [int32](#int32) | optional | |
| inboxes | [Inbox](#memos-api-v2-Inbox) | repeated | |
<a name="memos-api-v2-CreateResourceResponse"></a>
<a name="memos-api-v2-UpdateInboxRequest"></a>
### CreateResourceResponse
### UpdateInboxRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| resource | [Resource](#memos-api-v2-Resource) | | |
| inbox | [Inbox](#memos-api-v2-Inbox) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
<a name="memos-api-v2-DeleteResourceRequest"></a>
<a name="memos-api-v2-UpdateInboxResponse"></a>
### DeleteResourceRequest
### UpdateInboxResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
| inbox | [Inbox](#memos-api-v2-Inbox) | | |
<a name="memos-api-v2-DeleteResourceResponse"></a>
### DeleteResourceResponse
<a name="memos-api-v2-Inbox-Status"></a>
### Inbox.Status
| Name | Number | Description |
| ---- | ------ | ----------- |
| STATUS_UNSPECIFIED | 0 | |
| UNREAD | 1 | |
| ARCHIVED | 2 | |
<a name="memos-api-v2-ListResourcesRequest"></a>
<a name="memos-api-v2-Inbox-Type"></a>
### Inbox.Type
### ListResourcesRequest
| Name | Number | Description |
| ---- | ------ | ----------- |
| TYPE_UNSPECIFIED | 0 | |
| TYPE_MEMO_COMMENT | 1 | |
| TYPE_VERSION_UPDATE | 2 | |
<a name="memos-api-v2-ListResourcesResponse"></a>
### ListResourcesResponse
<a name="memos-api-v2-InboxService"></a>
### InboxService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| ListInboxes | [ListInboxesRequest](#memos-api-v2-ListInboxesRequest) | [ListInboxesResponse](#memos-api-v2-ListInboxesResponse) | |
| UpdateInbox | [UpdateInboxRequest](#memos-api-v2-UpdateInboxRequest) | [UpdateInboxResponse](#memos-api-v2-UpdateInboxResponse) | |
| DeleteInbox | [DeleteInboxRequest](#memos-api-v2-DeleteInboxRequest) | [DeleteInboxResponse](#memos-api-v2-DeleteInboxResponse) | |
<a name="api_v2_memo_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/memo_service.proto
<a name="memos-api-v2-CreateMemoCommentRequest"></a>
### CreateMemoCommentRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| resources | [Resource](#memos-api-v2-Resource) | repeated | |
| id | [int32](#int32) | | id is the memo id to create comment for. |
| create | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | | |
<a name="memos-api-v2-Resource"></a>
<a name="memos-api-v2-CreateMemoCommentResponse"></a>
### Resource
### CreateMemoCommentResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
| created_ts | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| filename | [string](#string) | | |
| external_link | [string](#string) | | |
| type | [string](#string) | | |
| size | [int64](#int64) | | |
| memo_id | [int32](#int32) | optional | |
| memo | [Memo](#memos-api-v2-Memo) | | |
<a name="memos-api-v2-UpdateResourceRequest"></a>
<a name="memos-api-v2-CreateMemoRequest"></a>
### UpdateResourceRequest
### CreateMemoRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| resource | [Resource](#memos-api-v2-Resource) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
| content | [string](#string) | | |
| visibility | [Visibility](#memos-api-v2-Visibility) | | |
<a name="memos-api-v2-UpdateResourceResponse"></a>
<a name="memos-api-v2-CreateMemoResponse"></a>
### UpdateResourceResponse
### CreateMemoResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| resource | [Resource](#memos-api-v2-Resource) | | |
| memo | [Memo](#memos-api-v2-Memo) | | |
<a name="memos-api-v2-GetMemoRequest"></a>
### GetMemoRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
<a name="memos-api-v2-ResourceService"></a>
### ResourceService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| CreateResource | [CreateResourceRequest](#memos-api-v2-CreateResourceRequest) | [CreateResourceResponse](#memos-api-v2-CreateResourceResponse) | |
| ListResources | [ListResourcesRequest](#memos-api-v2-ListResourcesRequest) | [ListResourcesResponse](#memos-api-v2-ListResourcesResponse) | |
| UpdateResource | [UpdateResourceRequest](#memos-api-v2-UpdateResourceRequest) | [UpdateResourceResponse](#memos-api-v2-UpdateResourceResponse) | |
| DeleteResource | [DeleteResourceRequest](#memos-api-v2-DeleteResourceRequest) | [DeleteResourceResponse](#memos-api-v2-DeleteResourceResponse) | |
<a name="memos-api-v2-GetMemoResponse"></a>
### GetMemoResponse
<a name="api_v2_system_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| memo | [Memo](#memos-api-v2-Memo) | | |
## api/v2/system_service.proto
<a name="memos-api-v2-GetSystemInfoRequest"></a>
### GetSystemInfoRequest
<a name="memos-api-v2-ListMemoCommentsRequest"></a>
### ListMemoCommentsRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
<a name="memos-api-v2-GetSystemInfoResponse"></a>
### GetSystemInfoResponse
<a name="memos-api-v2-ListMemoCommentsResponse"></a>
### ListMemoCommentsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | |
| memos | [Memo](#memos-api-v2-Memo) | repeated | |
<a name="memos-api-v2-SystemInfo"></a>
<a name="memos-api-v2-ListMemosRequest"></a>
### SystemInfo
### ListMemosRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| version | [string](#string) | | |
| mode | [string](#string) | | |
| allow_registration | [bool](#bool) | | |
| disable_password_login | [bool](#bool) | | |
| additional_script | [string](#string) | | |
| additional_style | [string](#string) | | |
| db_size | [int64](#int64) | | |
| page | [int32](#int32) | | |
| page_size | [int32](#int32) | | |
| filter | [string](#string) | | Filter is used to filter memos returned in the list. |
| creator_id | [int32](#int32) | optional | |
<a name="memos-api-v2-UpdateSystemInfoRequest"></a>
<a name="memos-api-v2-ListMemosResponse"></a>
### UpdateSystemInfoRequest
### ListMemosResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | System info is the updated data. |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
| memos | [Memo](#memos-api-v2-Memo) | repeated | |
<a name="memos-api-v2-UpdateSystemInfoResponse"></a>
<a name="memos-api-v2-Memo"></a>
### UpdateSystemInfoResponse
### Memo
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | |
| id | [int32](#int32) | | |
| row_status | [RowStatus](#memos-api-v2-RowStatus) | | |
| creator_id | [int32](#int32) | | |
| created_ts | [int64](#int64) | | |
| updated_ts | [int64](#int64) | | |
| content | [string](#string) | | |
| visibility | [Visibility](#memos-api-v2-Visibility) | | |
| pinned | [bool](#bool) | | |
......@@ -964,156 +971,177 @@
<a name="memos-api-v2-Visibility"></a>
### Visibility
| Name | Number | Description |
| ---- | ------ | ----------- |
| VISIBILITY_UNSPECIFIED | 0 | |
| PRIVATE | 1 | |
| PROTECTED | 2 | |
| PUBLIC | 3 | |
<a name="memos-api-v2-SystemService"></a>
### SystemService
<a name="memos-api-v2-MemoService"></a>
### MemoService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetSystemInfo | [GetSystemInfoRequest](#memos-api-v2-GetSystemInfoRequest) | [GetSystemInfoResponse](#memos-api-v2-GetSystemInfoResponse) | |
| UpdateSystemInfo | [UpdateSystemInfoRequest](#memos-api-v2-UpdateSystemInfoRequest) | [UpdateSystemInfoResponse](#memos-api-v2-UpdateSystemInfoResponse) | |
| CreateMemo | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | [CreateMemoResponse](#memos-api-v2-CreateMemoResponse) | |
| ListMemos | [ListMemosRequest](#memos-api-v2-ListMemosRequest) | [ListMemosResponse](#memos-api-v2-ListMemosResponse) | |
| GetMemo | [GetMemoRequest](#memos-api-v2-GetMemoRequest) | [GetMemoResponse](#memos-api-v2-GetMemoResponse) | |
| CreateMemoComment | [CreateMemoCommentRequest](#memos-api-v2-CreateMemoCommentRequest) | [CreateMemoCommentResponse](#memos-api-v2-CreateMemoCommentResponse) | |
| ListMemoComments | [ListMemoCommentsRequest](#memos-api-v2-ListMemoCommentsRequest) | [ListMemoCommentsResponse](#memos-api-v2-ListMemoCommentsResponse) | |
<a name="api_v2_tag_service-proto"></a>
<a name="api_v2_resource_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/tag_service.proto
## api/v2/resource_service.proto
<a name="memos-api-v2-DeleteTagRequest"></a>
<a name="memos-api-v2-CreateResourceRequest"></a>
### DeleteTagRequest
### CreateResourceRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| tag | [Tag](#memos-api-v2-Tag) | | |
| filename | [string](#string) | | |
| external_link | [string](#string) | | |
| type | [string](#string) | | |
| memo_id | [int32](#int32) | optional | |
<a name="memos-api-v2-DeleteTagResponse"></a>
### DeleteTagResponse
<a name="memos-api-v2-CreateResourceResponse"></a>
### CreateResourceResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| resource | [Resource](#memos-api-v2-Resource) | | |
<a name="memos-api-v2-GetTagSuggestionsRequest"></a>
### GetTagSuggestionsRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [string](#string) | | The creator of tags. Format: users/{username} |
<a name="memos-api-v2-DeleteResourceRequest"></a>
### DeleteResourceRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | | |
<a name="memos-api-v2-GetTagSuggestionsResponse"></a>
### GetTagSuggestionsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| tags | [string](#string) | repeated | |
<a name="memos-api-v2-DeleteResourceResponse"></a>
### DeleteResourceResponse
<a name="memos-api-v2-ListTagsRequest"></a>
### ListTagsRequest
<a name="memos-api-v2-ListResourcesRequest"></a>
### ListResourcesRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [string](#string) | | The creator of tags. Format: users/{username} |
<a name="memos-api-v2-ListTagsResponse"></a>
<a name="memos-api-v2-ListResourcesResponse"></a>
### ListTagsResponse
### ListResourcesResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| tags | [Tag](#memos-api-v2-Tag) | repeated | |
| resources | [Resource](#memos-api-v2-Resource) | repeated | |
<a name="memos-api-v2-Tag"></a>
<a name="memos-api-v2-Resource"></a>
### Tag
### Resource
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| creator | [string](#string) | | The creator of tags. Format: users/{username} |
| id | [int32](#int32) | | |
| created_ts | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| filename | [string](#string) | | |
| external_link | [string](#string) | | |
| type | [string](#string) | | |
| size | [int64](#int64) | | |
| memo_id | [int32](#int32) | optional | |
<a name="memos-api-v2-UpsertTagRequest"></a>
<a name="memos-api-v2-UpdateResourceRequest"></a>
### UpsertTagRequest
### UpdateResourceRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| resource | [Resource](#memos-api-v2-Resource) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
<a name="memos-api-v2-UpsertTagResponse"></a>
<a name="memos-api-v2-UpdateResourceResponse"></a>
### UpsertTagResponse
### UpdateResourceResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| tag | [Tag](#memos-api-v2-Tag) | | |
| resource | [Resource](#memos-api-v2-Resource) | | |
......@@ -1126,288 +1154,263 @@
<a name="memos-api-v2-TagService"></a>
<a name="memos-api-v2-ResourceService"></a>
### TagService
### ResourceService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| UpsertTag | [UpsertTagRequest](#memos-api-v2-UpsertTagRequest) | [UpsertTagResponse](#memos-api-v2-UpsertTagResponse) | |
| ListTags | [ListTagsRequest](#memos-api-v2-ListTagsRequest) | [ListTagsResponse](#memos-api-v2-ListTagsResponse) | |
| DeleteTag | [DeleteTagRequest](#memos-api-v2-DeleteTagRequest) | [DeleteTagResponse](#memos-api-v2-DeleteTagResponse) | |
| GetTagSuggestions | [GetTagSuggestionsRequest](#memos-api-v2-GetTagSuggestionsRequest) | [GetTagSuggestionsResponse](#memos-api-v2-GetTagSuggestionsResponse) | |
| CreateResource | [CreateResourceRequest](#memos-api-v2-CreateResourceRequest) | [CreateResourceResponse](#memos-api-v2-CreateResourceResponse) | |
| ListResources | [ListResourcesRequest](#memos-api-v2-ListResourcesRequest) | [ListResourcesResponse](#memos-api-v2-ListResourcesResponse) | |
| UpdateResource | [UpdateResourceRequest](#memos-api-v2-UpdateResourceRequest) | [UpdateResourceResponse](#memos-api-v2-UpdateResourceResponse) | |
| DeleteResource | [DeleteResourceRequest](#memos-api-v2-DeleteResourceRequest) | [DeleteResourceResponse](#memos-api-v2-DeleteResourceResponse) | |
<a name="api_v2_user_service-proto"></a>
<a name="api_v2_system_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/user_service.proto
## api/v2/system_service.proto
<a name="memos-api-v2-CreateUserAccessTokenRequest"></a>
### CreateUserAccessTokenRequest
<a name="memos-api-v2-GetSystemInfoRequest"></a>
### GetSystemInfoRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| description | [string](#string) | | |
| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | optional | |
<a name="memos-api-v2-CreateUserAccessTokenResponse"></a>
<a name="memos-api-v2-GetSystemInfoResponse"></a>
### CreateUserAccessTokenResponse
### GetSystemInfoResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| access_token | [UserAccessToken](#memos-api-v2-UserAccessToken) | | |
| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | |
<a name="memos-api-v2-CreateUserRequest"></a>
<a name="memos-api-v2-SystemInfo"></a>
### CreateUserRequest
### SystemInfo
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User](#memos-api-v2-User) | | |
| version | [string](#string) | | |
| mode | [string](#string) | | |
| allow_registration | [bool](#bool) | | |
| disable_password_login | [bool](#bool) | | |
| additional_script | [string](#string) | | |
| additional_style | [string](#string) | | |
| db_size | [int64](#int64) | | |
<a name="memos-api-v2-CreateUserResponse"></a>
<a name="memos-api-v2-UpdateSystemInfoRequest"></a>
### CreateUserResponse
### UpdateSystemInfoRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User](#memos-api-v2-User) | | |
| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | System info is the updated data. |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
<a name="memos-api-v2-DeleteUserAccessTokenRequest"></a>
<a name="memos-api-v2-UpdateSystemInfoResponse"></a>
### DeleteUserAccessTokenRequest
### UpdateSystemInfoResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| access_token | [string](#string) | | access_token is the access token to delete. |
| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | |
<a name="memos-api-v2-DeleteUserAccessTokenResponse"></a>
### DeleteUserAccessTokenResponse
<a name="memos-api-v2-SystemService"></a>
### SystemService
<a name="memos-api-v2-DeleteUserRequest"></a>
### DeleteUserRequest
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetSystemInfo | [GetSystemInfoRequest](#memos-api-v2-GetSystemInfoRequest) | [GetSystemInfoResponse](#memos-api-v2-GetSystemInfoResponse) | |
| UpdateSystemInfo | [UpdateSystemInfoRequest](#memos-api-v2-UpdateSystemInfoRequest) | [UpdateSystemInfoResponse](#memos-api-v2-UpdateSystemInfoResponse) | |
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
<a name="api_v2_tag_service-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/v2/tag_service.proto
<a name="memos-api-v2-DeleteUserResponse"></a>
<a name="memos-api-v2-DeleteTagRequest"></a>
### DeleteUserResponse
### DeleteTagRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| tag | [Tag](#memos-api-v2-Tag) | | |
<a name="memos-api-v2-GetUserRequest"></a>
### GetUserRequest
<a name="memos-api-v2-DeleteTagResponse"></a>
### DeleteTagResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
<a name="memos-api-v2-GetUserResponse"></a>
<a name="memos-api-v2-GetTagSuggestionsRequest"></a>
### GetUserResponse
### GetTagSuggestionsRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User](#memos-api-v2-User) | | |
| user | [string](#string) | | The creator of tags. Format: users/{username} |
<a name="memos-api-v2-ListUserAccessTokensRequest"></a>
<a name="memos-api-v2-GetTagSuggestionsResponse"></a>
### ListUserAccessTokensRequest
### GetTagSuggestionsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| tags | [string](#string) | repeated | |
<a name="memos-api-v2-ListUserAccessTokensResponse"></a>
<a name="memos-api-v2-ListTagsRequest"></a>
### ListUserAccessTokensResponse
### ListTagsRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| access_tokens | [UserAccessToken](#memos-api-v2-UserAccessToken) | repeated | |
| user | [string](#string) | | The creator of tags. Format: users/{username} |
<a name="memos-api-v2-UpdateUserRequest"></a>
<a name="memos-api-v2-ListTagsResponse"></a>
### UpdateUserRequest
### ListTagsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User](#memos-api-v2-User) | | |
| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | |
| tags | [Tag](#memos-api-v2-Tag) | repeated | |
<a name="memos-api-v2-UpdateUserResponse"></a>
<a name="memos-api-v2-Tag"></a>
### UpdateUserResponse
### Tag
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User](#memos-api-v2-User) | | |
| name | [string](#string) | | |
| creator | [string](#string) | | The creator of tags. Format: users/{username} |
<a name="memos-api-v2-User"></a>
<a name="memos-api-v2-UpsertTagRequest"></a>
### User
### UpsertTagRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | The name of the user. Format: users/{username} |
| id | [int32](#int32) | | |
| role | [User.Role](#memos-api-v2-User-Role) | | |
| email | [string](#string) | | |
| nickname | [string](#string) | | |
| avatar_url | [string](#string) | | |
| password | [string](#string) | | |
| row_status | [RowStatus](#memos-api-v2-RowStatus) | | |
| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| update_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| name | [string](#string) | | |
<a name="memos-api-v2-UserAccessToken"></a>
<a name="memos-api-v2-UpsertTagResponse"></a>
### UserAccessToken
### UpsertTagResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| access_token | [string](#string) | | |
| description | [string](#string) | | |
| issued_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| tag | [Tag](#memos-api-v2-Tag) | | |
<a name="memos-api-v2-User-Role"></a>
### User.Role
| Name | Number | Description |
| ---- | ------ | ----------- |
| ROLE_UNSPECIFIED | 0 | |
| HOST | 1 | |
| ADMIN | 2 | |
| USER | 3 | |
......@@ -1415,20 +1418,17 @@
<a name="memos-api-v2-UserService"></a>
<a name="memos-api-v2-TagService"></a>
### UserService
### TagService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetUser | [GetUserRequest](#memos-api-v2-GetUserRequest) | [GetUserResponse](#memos-api-v2-GetUserResponse) | GetUser gets a user by name. |
| CreateUser | [CreateUserRequest](#memos-api-v2-CreateUserRequest) | [CreateUserResponse](#memos-api-v2-CreateUserResponse) | CreateUser creates a new user. |
| UpdateUser | [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) | [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) | UpdateUser updates a user. |
| DeleteUser | [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) | [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) | DeleteUser deletes a user. |
| ListUserAccessTokens | [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. |
| CreateUserAccessToken | [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) | [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) | CreateUserAccessToken creates a new access token for a user. |
| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) | [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) | DeleteUserAccessToken deletes an access token for a user. |
| UpsertTag | [UpsertTagRequest](#memos-api-v2-UpsertTagRequest) | [UpsertTagResponse](#memos-api-v2-UpsertTagResponse) | |
| ListTags | [ListTagsRequest](#memos-api-v2-ListTagsRequest) | [ListTagsResponse](#memos-api-v2-ListTagsResponse) | |
| DeleteTag | [DeleteTagRequest](#memos-api-v2-DeleteTagRequest) | [DeleteTagResponse](#memos-api-v2-DeleteTagResponse) | |
| GetTagSuggestions | [GetTagSuggestionsRequest](#memos-api-v2-GetTagSuggestionsRequest) | [GetTagSuggestionsResponse](#memos-api-v2-GetTagSuggestionsResponse) | |
......
......@@ -64,7 +64,7 @@ type GetAuthStatusResponse struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
}
func (x *GetAuthStatusResponse) Reset() {
......@@ -99,11 +99,11 @@ func (*GetAuthStatusResponse) Descriptor() ([]byte, []int) {
return file_api_v2_auth_service_proto_rawDescGZIP(), []int{1}
}
func (x *GetAuthStatusResponse) GetOk() bool {
func (x *GetAuthStatusResponse) GetUser() *User {
if x != nil {
return x.Ok
return x.User
}
return false
return nil
}
var File_api_v2_auth_service_proto protoreflect.FileDescriptor
......@@ -111,33 +111,36 @@ var File_api_v2_auth_service_proto protoreflect.FileDescriptor
var file_api_v2_auth_service_proto_rawDesc = []byte{
0x0a, 0x19, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x6d,
0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x75,
0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
0x27, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x32, 0x84, 0x01, 0x0a, 0x0b, 0x41, 0x75, 0x74,
0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41,
0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e,
0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74,
0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42,
0xa8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
0x69, 0x2e, 0x76, 0x32, 0x42, 0x10, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x65,
0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70,
0x69, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x4d, 0x41, 0x58,
0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x32, 0xca,
0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32, 0xe2, 0x02,
0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50,
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x65, 0x6d, 0x6f,
0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x1a, 0x19, 0x61, 0x70, 0x69, 0x2f, 0x76,
0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65,
0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,
0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x84, 0x01, 0x0a, 0x0b,
0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x0d, 0x47,
0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x6d,
0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x41,
0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x13, 0x2f,
0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x42, 0xa8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x42, 0x10, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e,
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x32, 0xa2, 0x02, 0x03,
0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e,
0x56, 0x32, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56,
0x32, 0xe2, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32,
0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d,
0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
......@@ -156,15 +159,17 @@ var file_api_v2_auth_service_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_api_v2_auth_service_proto_goTypes = []interface{}{
(*GetAuthStatusRequest)(nil), // 0: memos.api.v2.GetAuthStatusRequest
(*GetAuthStatusResponse)(nil), // 1: memos.api.v2.GetAuthStatusResponse
(*User)(nil), // 2: memos.api.v2.User
}
var file_api_v2_auth_service_proto_depIdxs = []int32{
0, // 0: memos.api.v2.AuthService.GetAuthStatus:input_type -> memos.api.v2.GetAuthStatusRequest
1, // 1: memos.api.v2.AuthService.GetAuthStatus:output_type -> memos.api.v2.GetAuthStatusResponse
1, // [1:2] is the sub-list for method output_type
0, // [0:1] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
2, // 0: memos.api.v2.GetAuthStatusResponse.user:type_name -> memos.api.v2.User
0, // 1: memos.api.v2.AuthService.GetAuthStatus:input_type -> memos.api.v2.GetAuthStatusRequest
1, // 2: memos.api.v2.AuthService.GetAuthStatus:output_type -> memos.api.v2.GetAuthStatusResponse
2, // [2:3] is the sub-list for method output_type
1, // [1:2] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_api_v2_auth_service_proto_init() }
......@@ -172,6 +177,7 @@ func file_api_v2_auth_service_proto_init() {
if File_api_v2_auth_service_proto != nil {
return
}
file_api_v2_user_service_proto_init()
if !protoimpl.UnsafeEnabled {
file_api_v2_auth_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetAuthStatusRequest); i {
......
......@@ -78,16 +78,16 @@ const doSignOut = async () => {
const fetchCurrentUser = async () => {
const userId = localStorage.getItem("userId");
if (userId) {
const { ok } = await authServiceClient.getAuthStatus({});
if (!ok) {
const { user } = await authServiceClient.getAuthStatus({});
if (!user) {
localStorage.removeItem("userId");
return;
}
const { data } = await api.getUserById(Number(userId));
const user = convertResponseModelUser(data);
if (user) {
store.dispatch(setUser(user));
return user;
const userMessage = convertResponseModelUser(data);
if (userMessage) {
store.dispatch(setUser(userMessage));
return userMessage;
}
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment