mirror of
https://github.com/aykhans/slash-e.git
synced 2025-04-18 21:19:44 +00:00
chore: tweak user service response
This commit is contained in:
parent
8d6ad68d47
commit
8eac931592
@ -53,36 +53,27 @@ const useUserStore = create<UserState>()((set, get) => ({
|
|||||||
return userMap[id] as User;
|
return userMap[id] as User;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { user } = await userServiceClient.getUser({
|
const user = await userServiceClient.getUser({
|
||||||
id: id,
|
id: id,
|
||||||
});
|
});
|
||||||
if (!user) {
|
|
||||||
throw new Error("User not found");
|
|
||||||
}
|
|
||||||
userMap[id] = user;
|
userMap[id] = user;
|
||||||
set(userMap);
|
set(userMap);
|
||||||
return user;
|
return user;
|
||||||
},
|
},
|
||||||
createUser: async (userCreate: Partial<User>) => {
|
createUser: async (userCreate: Partial<User>) => {
|
||||||
const { user } = await userServiceClient.createUser({
|
const user = await userServiceClient.createUser({
|
||||||
user: userCreate,
|
user: userCreate,
|
||||||
});
|
});
|
||||||
if (!user) {
|
|
||||||
throw new Error("User not found");
|
|
||||||
}
|
|
||||||
const userMap = get().userMapById;
|
const userMap = get().userMapById;
|
||||||
userMap[user.id] = user;
|
userMap[user.id] = user;
|
||||||
set(userMap);
|
set(userMap);
|
||||||
return user;
|
return user;
|
||||||
},
|
},
|
||||||
patchUser: async (userPatch: Partial<User>, updateMask: string[]) => {
|
patchUser: async (userPatch: Partial<User>, updateMask: string[]) => {
|
||||||
const { user } = await userServiceClient.updateUser({
|
const user = await userServiceClient.updateUser({
|
||||||
user: userPatch,
|
user: userPatch,
|
||||||
updateMask: updateMask,
|
updateMask: updateMask,
|
||||||
});
|
});
|
||||||
if (!user) {
|
|
||||||
throw new Error("User not found");
|
|
||||||
}
|
|
||||||
const userMap = get().userMapById;
|
const userMap = get().userMapById;
|
||||||
userMap[user.id] = user;
|
userMap[user.id] = user;
|
||||||
set(userMap);
|
set(userMap);
|
||||||
|
@ -5,6 +5,7 @@ package slash.api.v1;
|
|||||||
import "api/v1/common.proto";
|
import "api/v1/common.proto";
|
||||||
import "google/api/annotations.proto";
|
import "google/api/annotations.proto";
|
||||||
import "google/api/client.proto";
|
import "google/api/client.proto";
|
||||||
|
import "google/protobuf/empty.proto";
|
||||||
import "google/protobuf/field_mask.proto";
|
import "google/protobuf/field_mask.proto";
|
||||||
import "google/protobuf/timestamp.proto";
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
@ -16,18 +17,18 @@ service UserService {
|
|||||||
option (google.api.http) = {get: "/api/v1/users"};
|
option (google.api.http) = {get: "/api/v1/users"};
|
||||||
}
|
}
|
||||||
// GetUser returns a user by id.
|
// GetUser returns a user by id.
|
||||||
rpc GetUser(GetUserRequest) returns (GetUserResponse) {
|
rpc GetUser(GetUserRequest) returns (User) {
|
||||||
option (google.api.http) = {get: "/api/v1/users/{id}"};
|
option (google.api.http) = {get: "/api/v1/users/{id}"};
|
||||||
option (google.api.method_signature) = "id";
|
option (google.api.method_signature) = "id";
|
||||||
}
|
}
|
||||||
// CreateUser creates a new user.
|
// CreateUser creates a new user.
|
||||||
rpc CreateUser(CreateUserRequest) returns (CreateUserResponse) {
|
rpc CreateUser(CreateUserRequest) returns (User) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
post: "/api/v1/users"
|
post: "/api/v1/users"
|
||||||
body: "user"
|
body: "user"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
rpc UpdateUser(UpdateUserRequest) returns (UpdateUserResponse) {
|
rpc UpdateUser(UpdateUserRequest) returns (User) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
patch: "/api/v1/users/{user.id}"
|
patch: "/api/v1/users/{user.id}"
|
||||||
body: "user"
|
body: "user"
|
||||||
@ -35,7 +36,7 @@ service UserService {
|
|||||||
option (google.api.method_signature) = "user,update_mask";
|
option (google.api.method_signature) = "user,update_mask";
|
||||||
}
|
}
|
||||||
// DeleteUser deletes a user by id.
|
// DeleteUser deletes a user by id.
|
||||||
rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse) {
|
rpc DeleteUser(DeleteUserRequest) returns (google.protobuf.Empty) {
|
||||||
option (google.api.http) = {delete: "/api/v1/users/{id}"};
|
option (google.api.http) = {delete: "/api/v1/users/{id}"};
|
||||||
option (google.api.method_signature) = "id";
|
option (google.api.method_signature) = "id";
|
||||||
}
|
}
|
||||||
@ -45,7 +46,7 @@ service UserService {
|
|||||||
option (google.api.method_signature) = "id";
|
option (google.api.method_signature) = "id";
|
||||||
}
|
}
|
||||||
// CreateUserAccessToken creates a new access token for a user.
|
// CreateUserAccessToken creates a new access token for a user.
|
||||||
rpc CreateUserAccessToken(CreateUserAccessTokenRequest) returns (CreateUserAccessTokenResponse) {
|
rpc CreateUserAccessToken(CreateUserAccessTokenRequest) returns (UserAccessToken) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
post: "/api/v1/users/{id}/access_tokens"
|
post: "/api/v1/users/{id}/access_tokens"
|
||||||
body: "*"
|
body: "*"
|
||||||
@ -53,7 +54,7 @@ service UserService {
|
|||||||
option (google.api.method_signature) = "id";
|
option (google.api.method_signature) = "id";
|
||||||
}
|
}
|
||||||
// DeleteUserAccessToken deletes an access token for a user.
|
// DeleteUserAccessToken deletes an access token for a user.
|
||||||
rpc DeleteUserAccessToken(DeleteUserAccessTokenRequest) returns (DeleteUserAccessTokenResponse) {
|
rpc DeleteUserAccessToken(DeleteUserAccessTokenRequest) returns (google.protobuf.Empty) {
|
||||||
option (google.api.http) = {delete: "/api/v1/users/{id}/access_tokens/{access_token}"};
|
option (google.api.http) = {delete: "/api/v1/users/{id}/access_tokens/{access_token}"};
|
||||||
option (google.api.method_signature) = "id,access_token";
|
option (google.api.method_signature) = "id,access_token";
|
||||||
}
|
}
|
||||||
@ -95,34 +96,20 @@ message GetUserRequest {
|
|||||||
int32 id = 1;
|
int32 id = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message GetUserResponse {
|
|
||||||
User user = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CreateUserRequest {
|
message CreateUserRequest {
|
||||||
User user = 1;
|
User user = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateUserResponse {
|
|
||||||
User user = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message UpdateUserRequest {
|
message UpdateUserRequest {
|
||||||
User user = 1;
|
User user = 1;
|
||||||
|
|
||||||
google.protobuf.FieldMask update_mask = 2;
|
google.protobuf.FieldMask update_mask = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message UpdateUserResponse {
|
|
||||||
User user = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message DeleteUserRequest {
|
message DeleteUserRequest {
|
||||||
int32 id = 1;
|
int32 id = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeleteUserResponse {}
|
|
||||||
|
|
||||||
message ListUserAccessTokensRequest {
|
message ListUserAccessTokensRequest {
|
||||||
// id is the user id.
|
// id is the user id.
|
||||||
int32 id = 1;
|
int32 id = 1;
|
||||||
@ -142,10 +129,6 @@ message CreateUserAccessTokenRequest {
|
|||||||
optional google.protobuf.Timestamp expires_at = 3;
|
optional google.protobuf.Timestamp expires_at = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateUserAccessTokenResponse {
|
|
||||||
UserAccessToken access_token = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message DeleteUserAccessTokenRequest {
|
message DeleteUserAccessTokenRequest {
|
||||||
// id is the user id.
|
// id is the user id.
|
||||||
int32 id = 1;
|
int32 id = 1;
|
||||||
@ -153,8 +136,6 @@ message DeleteUserAccessTokenRequest {
|
|||||||
string access_token = 2;
|
string access_token = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeleteUserAccessTokenResponse {}
|
|
||||||
|
|
||||||
message UserAccessToken {
|
message UserAccessToken {
|
||||||
string access_token = 1;
|
string access_token = 1;
|
||||||
string description = 2;
|
string description = 2;
|
||||||
|
@ -9,21 +9,15 @@
|
|||||||
|
|
||||||
- [api/v1/user_service.proto](#api_v1_user_service-proto)
|
- [api/v1/user_service.proto](#api_v1_user_service-proto)
|
||||||
- [CreateUserAccessTokenRequest](#slash-api-v1-CreateUserAccessTokenRequest)
|
- [CreateUserAccessTokenRequest](#slash-api-v1-CreateUserAccessTokenRequest)
|
||||||
- [CreateUserAccessTokenResponse](#slash-api-v1-CreateUserAccessTokenResponse)
|
|
||||||
- [CreateUserRequest](#slash-api-v1-CreateUserRequest)
|
- [CreateUserRequest](#slash-api-v1-CreateUserRequest)
|
||||||
- [CreateUserResponse](#slash-api-v1-CreateUserResponse)
|
|
||||||
- [DeleteUserAccessTokenRequest](#slash-api-v1-DeleteUserAccessTokenRequest)
|
- [DeleteUserAccessTokenRequest](#slash-api-v1-DeleteUserAccessTokenRequest)
|
||||||
- [DeleteUserAccessTokenResponse](#slash-api-v1-DeleteUserAccessTokenResponse)
|
|
||||||
- [DeleteUserRequest](#slash-api-v1-DeleteUserRequest)
|
- [DeleteUserRequest](#slash-api-v1-DeleteUserRequest)
|
||||||
- [DeleteUserResponse](#slash-api-v1-DeleteUserResponse)
|
|
||||||
- [GetUserRequest](#slash-api-v1-GetUserRequest)
|
- [GetUserRequest](#slash-api-v1-GetUserRequest)
|
||||||
- [GetUserResponse](#slash-api-v1-GetUserResponse)
|
|
||||||
- [ListUserAccessTokensRequest](#slash-api-v1-ListUserAccessTokensRequest)
|
- [ListUserAccessTokensRequest](#slash-api-v1-ListUserAccessTokensRequest)
|
||||||
- [ListUserAccessTokensResponse](#slash-api-v1-ListUserAccessTokensResponse)
|
- [ListUserAccessTokensResponse](#slash-api-v1-ListUserAccessTokensResponse)
|
||||||
- [ListUsersRequest](#slash-api-v1-ListUsersRequest)
|
- [ListUsersRequest](#slash-api-v1-ListUsersRequest)
|
||||||
- [ListUsersResponse](#slash-api-v1-ListUsersResponse)
|
- [ListUsersResponse](#slash-api-v1-ListUsersResponse)
|
||||||
- [UpdateUserRequest](#slash-api-v1-UpdateUserRequest)
|
- [UpdateUserRequest](#slash-api-v1-UpdateUserRequest)
|
||||||
- [UpdateUserResponse](#slash-api-v1-UpdateUserResponse)
|
|
||||||
- [User](#slash-api-v1-User)
|
- [User](#slash-api-v1-User)
|
||||||
- [UserAccessToken](#slash-api-v1-UserAccessToken)
|
- [UserAccessToken](#slash-api-v1-UserAccessToken)
|
||||||
|
|
||||||
@ -181,21 +175,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-CreateUserAccessTokenResponse"></a>
|
|
||||||
|
|
||||||
### CreateUserAccessTokenResponse
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
| Field | Type | Label | Description |
|
|
||||||
| ----- | ---- | ----- | ----------- |
|
|
||||||
| access_token | [UserAccessToken](#slash-api-v1-UserAccessToken) | | |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-CreateUserRequest"></a>
|
<a name="slash-api-v1-CreateUserRequest"></a>
|
||||||
|
|
||||||
### CreateUserRequest
|
### CreateUserRequest
|
||||||
@ -211,21 +190,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-CreateUserResponse"></a>
|
|
||||||
|
|
||||||
### CreateUserResponse
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
| Field | Type | Label | Description |
|
|
||||||
| ----- | ---- | ----- | ----------- |
|
|
||||||
| user | [User](#slash-api-v1-User) | | |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-DeleteUserAccessTokenRequest"></a>
|
<a name="slash-api-v1-DeleteUserAccessTokenRequest"></a>
|
||||||
|
|
||||||
### DeleteUserAccessTokenRequest
|
### DeleteUserAccessTokenRequest
|
||||||
@ -242,16 +206,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-DeleteUserAccessTokenResponse"></a>
|
|
||||||
|
|
||||||
### DeleteUserAccessTokenResponse
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-DeleteUserRequest"></a>
|
<a name="slash-api-v1-DeleteUserRequest"></a>
|
||||||
|
|
||||||
### DeleteUserRequest
|
### DeleteUserRequest
|
||||||
@ -267,16 +221,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-DeleteUserResponse"></a>
|
|
||||||
|
|
||||||
### DeleteUserResponse
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-GetUserRequest"></a>
|
<a name="slash-api-v1-GetUserRequest"></a>
|
||||||
|
|
||||||
### GetUserRequest
|
### GetUserRequest
|
||||||
@ -292,21 +236,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-GetUserResponse"></a>
|
|
||||||
|
|
||||||
### GetUserResponse
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
| Field | Type | Label | Description |
|
|
||||||
| ----- | ---- | ----- | ----------- |
|
|
||||||
| user | [User](#slash-api-v1-User) | | |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-ListUserAccessTokensRequest"></a>
|
<a name="slash-api-v1-ListUserAccessTokensRequest"></a>
|
||||||
|
|
||||||
### ListUserAccessTokensRequest
|
### ListUserAccessTokensRequest
|
||||||
@ -378,21 +307,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-UpdateUserResponse"></a>
|
|
||||||
|
|
||||||
### UpdateUserResponse
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
| Field | Type | Label | Description |
|
|
||||||
| ----- | ---- | ----- | ----------- |
|
|
||||||
| user | [User](#slash-api-v1-User) | | |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="slash-api-v1-User"></a>
|
<a name="slash-api-v1-User"></a>
|
||||||
|
|
||||||
### User
|
### User
|
||||||
@ -460,13 +374,13 @@
|
|||||||
| Method Name | Request Type | Response Type | Description |
|
| Method Name | Request Type | Response Type | Description |
|
||||||
| ----------- | ------------ | ------------- | ------------|
|
| ----------- | ------------ | ------------- | ------------|
|
||||||
| ListUsers | [ListUsersRequest](#slash-api-v1-ListUsersRequest) | [ListUsersResponse](#slash-api-v1-ListUsersResponse) | ListUsers returns a list of users. |
|
| ListUsers | [ListUsersRequest](#slash-api-v1-ListUsersRequest) | [ListUsersResponse](#slash-api-v1-ListUsersResponse) | ListUsers returns a list of users. |
|
||||||
| GetUser | [GetUserRequest](#slash-api-v1-GetUserRequest) | [GetUserResponse](#slash-api-v1-GetUserResponse) | GetUser returns a user by id. |
|
| GetUser | [GetUserRequest](#slash-api-v1-GetUserRequest) | [User](#slash-api-v1-User) | GetUser returns a user by id. |
|
||||||
| CreateUser | [CreateUserRequest](#slash-api-v1-CreateUserRequest) | [CreateUserResponse](#slash-api-v1-CreateUserResponse) | CreateUser creates a new user. |
|
| CreateUser | [CreateUserRequest](#slash-api-v1-CreateUserRequest) | [User](#slash-api-v1-User) | CreateUser creates a new user. |
|
||||||
| UpdateUser | [UpdateUserRequest](#slash-api-v1-UpdateUserRequest) | [UpdateUserResponse](#slash-api-v1-UpdateUserResponse) | |
|
| UpdateUser | [UpdateUserRequest](#slash-api-v1-UpdateUserRequest) | [User](#slash-api-v1-User) | |
|
||||||
| DeleteUser | [DeleteUserRequest](#slash-api-v1-DeleteUserRequest) | [DeleteUserResponse](#slash-api-v1-DeleteUserResponse) | DeleteUser deletes a user by id. |
|
| DeleteUser | [DeleteUserRequest](#slash-api-v1-DeleteUserRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | DeleteUser deletes a user by id. |
|
||||||
| ListUserAccessTokens | [ListUserAccessTokensRequest](#slash-api-v1-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#slash-api-v1-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. |
|
| ListUserAccessTokens | [ListUserAccessTokensRequest](#slash-api-v1-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#slash-api-v1-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. |
|
||||||
| CreateUserAccessToken | [CreateUserAccessTokenRequest](#slash-api-v1-CreateUserAccessTokenRequest) | [CreateUserAccessTokenResponse](#slash-api-v1-CreateUserAccessTokenResponse) | CreateUserAccessToken creates a new access token for a user. |
|
| CreateUserAccessToken | [CreateUserAccessTokenRequest](#slash-api-v1-CreateUserAccessTokenRequest) | [UserAccessToken](#slash-api-v1-UserAccessToken) | CreateUserAccessToken creates a new access token for a user. |
|
||||||
| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#slash-api-v1-DeleteUserAccessTokenRequest) | [DeleteUserAccessTokenResponse](#slash-api-v1-DeleteUserAccessTokenResponse) | DeleteUserAccessToken deletes an access token for a user. |
|
| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#slash-api-v1-DeleteUserAccessTokenRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | DeleteUserAccessToken deletes an access token for a user. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -11,6 +11,7 @@ import (
|
|||||||
grpc "google.golang.org/grpc"
|
grpc "google.golang.org/grpc"
|
||||||
codes "google.golang.org/grpc/codes"
|
codes "google.golang.org/grpc/codes"
|
||||||
status "google.golang.org/grpc/status"
|
status "google.golang.org/grpc/status"
|
||||||
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
)
|
)
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
// This is a compile-time assertion to ensure that this generated file
|
||||||
@ -36,18 +37,18 @@ type UserServiceClient interface {
|
|||||||
// ListUsers returns a list of users.
|
// ListUsers returns a list of users.
|
||||||
ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error)
|
ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error)
|
||||||
// GetUser returns a user by id.
|
// GetUser returns a user by id.
|
||||||
GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error)
|
GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*User, error)
|
||||||
// CreateUser creates a new user.
|
// CreateUser creates a new user.
|
||||||
CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error)
|
CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*User, error)
|
||||||
UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error)
|
UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*User, error)
|
||||||
// DeleteUser deletes a user by id.
|
// DeleteUser deletes a user by id.
|
||||||
DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error)
|
DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||||
// ListUserAccessTokens returns a list of access tokens for a user.
|
// ListUserAccessTokens returns a list of access tokens for a user.
|
||||||
ListUserAccessTokens(ctx context.Context, in *ListUserAccessTokensRequest, opts ...grpc.CallOption) (*ListUserAccessTokensResponse, error)
|
ListUserAccessTokens(ctx context.Context, in *ListUserAccessTokensRequest, opts ...grpc.CallOption) (*ListUserAccessTokensResponse, error)
|
||||||
// CreateUserAccessToken creates a new access token for a user.
|
// CreateUserAccessToken creates a new access token for a user.
|
||||||
CreateUserAccessToken(ctx context.Context, in *CreateUserAccessTokenRequest, opts ...grpc.CallOption) (*CreateUserAccessTokenResponse, error)
|
CreateUserAccessToken(ctx context.Context, in *CreateUserAccessTokenRequest, opts ...grpc.CallOption) (*UserAccessToken, error)
|
||||||
// DeleteUserAccessToken deletes an access token for a user.
|
// DeleteUserAccessToken deletes an access token for a user.
|
||||||
DeleteUserAccessToken(ctx context.Context, in *DeleteUserAccessTokenRequest, opts ...grpc.CallOption) (*DeleteUserAccessTokenResponse, error)
|
DeleteUserAccessToken(ctx context.Context, in *DeleteUserAccessTokenRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type userServiceClient struct {
|
type userServiceClient struct {
|
||||||
@ -68,9 +69,9 @@ func (c *userServiceClient) ListUsers(ctx context.Context, in *ListUsersRequest,
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) {
|
func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*User, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(GetUserResponse)
|
out := new(User)
|
||||||
err := c.cc.Invoke(ctx, UserService_GetUser_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, UserService_GetUser_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -78,9 +79,9 @@ func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opt
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userServiceClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) {
|
func (c *userServiceClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*User, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(CreateUserResponse)
|
out := new(User)
|
||||||
err := c.cc.Invoke(ctx, UserService_CreateUser_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, UserService_CreateUser_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -88,9 +89,9 @@ func (c *userServiceClient) CreateUser(ctx context.Context, in *CreateUserReques
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userServiceClient) UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error) {
|
func (c *userServiceClient) UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*User, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(UpdateUserResponse)
|
out := new(User)
|
||||||
err := c.cc.Invoke(ctx, UserService_UpdateUser_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, UserService_UpdateUser_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -98,9 +99,9 @@ func (c *userServiceClient) UpdateUser(ctx context.Context, in *UpdateUserReques
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userServiceClient) DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) {
|
func (c *userServiceClient) DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(DeleteUserResponse)
|
out := new(emptypb.Empty)
|
||||||
err := c.cc.Invoke(ctx, UserService_DeleteUser_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, UserService_DeleteUser_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -118,9 +119,9 @@ func (c *userServiceClient) ListUserAccessTokens(ctx context.Context, in *ListUs
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userServiceClient) CreateUserAccessToken(ctx context.Context, in *CreateUserAccessTokenRequest, opts ...grpc.CallOption) (*CreateUserAccessTokenResponse, error) {
|
func (c *userServiceClient) CreateUserAccessToken(ctx context.Context, in *CreateUserAccessTokenRequest, opts ...grpc.CallOption) (*UserAccessToken, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(CreateUserAccessTokenResponse)
|
out := new(UserAccessToken)
|
||||||
err := c.cc.Invoke(ctx, UserService_CreateUserAccessToken_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, UserService_CreateUserAccessToken_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -128,9 +129,9 @@ func (c *userServiceClient) CreateUserAccessToken(ctx context.Context, in *Creat
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *userServiceClient) DeleteUserAccessToken(ctx context.Context, in *DeleteUserAccessTokenRequest, opts ...grpc.CallOption) (*DeleteUserAccessTokenResponse, error) {
|
func (c *userServiceClient) DeleteUserAccessToken(ctx context.Context, in *DeleteUserAccessTokenRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(DeleteUserAccessTokenResponse)
|
out := new(emptypb.Empty)
|
||||||
err := c.cc.Invoke(ctx, UserService_DeleteUserAccessToken_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, UserService_DeleteUserAccessToken_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -145,18 +146,18 @@ type UserServiceServer interface {
|
|||||||
// ListUsers returns a list of users.
|
// ListUsers returns a list of users.
|
||||||
ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error)
|
ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error)
|
||||||
// GetUser returns a user by id.
|
// GetUser returns a user by id.
|
||||||
GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error)
|
GetUser(context.Context, *GetUserRequest) (*User, error)
|
||||||
// CreateUser creates a new user.
|
// CreateUser creates a new user.
|
||||||
CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error)
|
CreateUser(context.Context, *CreateUserRequest) (*User, error)
|
||||||
UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error)
|
UpdateUser(context.Context, *UpdateUserRequest) (*User, error)
|
||||||
// DeleteUser deletes a user by id.
|
// DeleteUser deletes a user by id.
|
||||||
DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error)
|
DeleteUser(context.Context, *DeleteUserRequest) (*emptypb.Empty, error)
|
||||||
// ListUserAccessTokens returns a list of access tokens for a user.
|
// ListUserAccessTokens returns a list of access tokens for a user.
|
||||||
ListUserAccessTokens(context.Context, *ListUserAccessTokensRequest) (*ListUserAccessTokensResponse, error)
|
ListUserAccessTokens(context.Context, *ListUserAccessTokensRequest) (*ListUserAccessTokensResponse, error)
|
||||||
// CreateUserAccessToken creates a new access token for a user.
|
// CreateUserAccessToken creates a new access token for a user.
|
||||||
CreateUserAccessToken(context.Context, *CreateUserAccessTokenRequest) (*CreateUserAccessTokenResponse, error)
|
CreateUserAccessToken(context.Context, *CreateUserAccessTokenRequest) (*UserAccessToken, error)
|
||||||
// DeleteUserAccessToken deletes an access token for a user.
|
// DeleteUserAccessToken deletes an access token for a user.
|
||||||
DeleteUserAccessToken(context.Context, *DeleteUserAccessTokenRequest) (*DeleteUserAccessTokenResponse, error)
|
DeleteUserAccessToken(context.Context, *DeleteUserAccessTokenRequest) (*emptypb.Empty, error)
|
||||||
mustEmbedUnimplementedUserServiceServer()
|
mustEmbedUnimplementedUserServiceServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,25 +171,25 @@ type UnimplementedUserServiceServer struct{}
|
|||||||
func (UnimplementedUserServiceServer) ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error) {
|
func (UnimplementedUserServiceServer) ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method ListUsers not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method ListUsers not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) {
|
func (UnimplementedUserServiceServer) GetUser(context.Context, *GetUserRequest) (*User, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error) {
|
func (UnimplementedUserServiceServer) CreateUser(context.Context, *CreateUserRequest) (*User, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method CreateUser not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method CreateUser not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error) {
|
func (UnimplementedUserServiceServer) UpdateUser(context.Context, *UpdateUserRequest) (*User, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateUser not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method UpdateUser not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) {
|
func (UnimplementedUserServiceServer) DeleteUser(context.Context, *DeleteUserRequest) (*emptypb.Empty, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) ListUserAccessTokens(context.Context, *ListUserAccessTokensRequest) (*ListUserAccessTokensResponse, error) {
|
func (UnimplementedUserServiceServer) ListUserAccessTokens(context.Context, *ListUserAccessTokensRequest) (*ListUserAccessTokensResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method ListUserAccessTokens not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method ListUserAccessTokens not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) CreateUserAccessToken(context.Context, *CreateUserAccessTokenRequest) (*CreateUserAccessTokenResponse, error) {
|
func (UnimplementedUserServiceServer) CreateUserAccessToken(context.Context, *CreateUserAccessTokenRequest) (*UserAccessToken, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method CreateUserAccessToken not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method CreateUserAccessToken not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) DeleteUserAccessToken(context.Context, *DeleteUserAccessTokenRequest) (*DeleteUserAccessTokenResponse, error) {
|
func (UnimplementedUserServiceServer) DeleteUserAccessToken(context.Context, *DeleteUserAccessTokenRequest) (*emptypb.Empty, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method DeleteUserAccessToken not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method DeleteUserAccessToken not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedUserServiceServer) mustEmbedUnimplementedUserServiceServer() {}
|
func (UnimplementedUserServiceServer) mustEmbedUnimplementedUserServiceServer() {}
|
||||||
|
@ -439,7 +439,7 @@ paths:
|
|||||||
"200":
|
"200":
|
||||||
description: A successful response.
|
description: A successful response.
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/v1CreateUserResponse'
|
$ref: '#/definitions/v1User'
|
||||||
default:
|
default:
|
||||||
description: An unexpected error response.
|
description: An unexpected error response.
|
||||||
schema:
|
schema:
|
||||||
@ -460,7 +460,7 @@ paths:
|
|||||||
"200":
|
"200":
|
||||||
description: A successful response.
|
description: A successful response.
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/v1GetUserResponse'
|
$ref: '#/definitions/v1User'
|
||||||
default:
|
default:
|
||||||
description: An unexpected error response.
|
description: An unexpected error response.
|
||||||
schema:
|
schema:
|
||||||
@ -480,7 +480,8 @@ paths:
|
|||||||
"200":
|
"200":
|
||||||
description: A successful response.
|
description: A successful response.
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/v1DeleteUserResponse'
|
type: object
|
||||||
|
properties: {}
|
||||||
default:
|
default:
|
||||||
description: An unexpected error response.
|
description: An unexpected error response.
|
||||||
schema:
|
schema:
|
||||||
@ -522,7 +523,7 @@ paths:
|
|||||||
"200":
|
"200":
|
||||||
description: A successful response.
|
description: A successful response.
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/v1CreateUserAccessTokenResponse'
|
$ref: '#/definitions/v1UserAccessToken'
|
||||||
default:
|
default:
|
||||||
description: An unexpected error response.
|
description: An unexpected error response.
|
||||||
schema:
|
schema:
|
||||||
@ -549,7 +550,8 @@ paths:
|
|||||||
"200":
|
"200":
|
||||||
description: A successful response.
|
description: A successful response.
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/v1DeleteUserAccessTokenResponse'
|
type: object
|
||||||
|
properties: {}
|
||||||
default:
|
default:
|
||||||
description: An unexpected error response.
|
description: An unexpected error response.
|
||||||
schema:
|
schema:
|
||||||
@ -624,7 +626,7 @@ paths:
|
|||||||
"200":
|
"200":
|
||||||
description: A successful response.
|
description: A successful response.
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/v1UpdateUserResponse'
|
$ref: '#/definitions/v1User'
|
||||||
default:
|
default:
|
||||||
description: An unexpected error response.
|
description: An unexpected error response.
|
||||||
schema:
|
schema:
|
||||||
@ -989,22 +991,8 @@ definitions:
|
|||||||
properties:
|
properties:
|
||||||
collection:
|
collection:
|
||||||
$ref: '#/definitions/apiv1Collection'
|
$ref: '#/definitions/apiv1Collection'
|
||||||
v1CreateUserAccessTokenResponse:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
accessToken:
|
|
||||||
$ref: '#/definitions/v1UserAccessToken'
|
|
||||||
v1CreateUserResponse:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
user:
|
|
||||||
$ref: '#/definitions/v1User'
|
|
||||||
v1DeleteCollectionResponse:
|
v1DeleteCollectionResponse:
|
||||||
type: object
|
type: object
|
||||||
v1DeleteUserAccessTokenResponse:
|
|
||||||
type: object
|
|
||||||
v1DeleteUserResponse:
|
|
||||||
type: object
|
|
||||||
v1GetCollectionByNameResponse:
|
v1GetCollectionByNameResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1033,11 +1021,6 @@ definitions:
|
|||||||
items:
|
items:
|
||||||
type: object
|
type: object
|
||||||
$ref: '#/definitions/GetShortcutAnalyticsResponseAnalyticsItem'
|
$ref: '#/definitions/GetShortcutAnalyticsResponseAnalyticsItem'
|
||||||
v1GetUserResponse:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
user:
|
|
||||||
$ref: '#/definitions/v1User'
|
|
||||||
v1GetUserSettingResponse:
|
v1GetUserSettingResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1142,11 +1125,6 @@ definitions:
|
|||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- licenseKey
|
- licenseKey
|
||||||
v1UpdateUserResponse:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
user:
|
|
||||||
$ref: '#/definitions/v1User'
|
|
||||||
v1UpdateUserSettingResponse:
|
v1UpdateUserSettingResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"golang.org/x/exp/slices"
|
"golang.org/x/exp/slices"
|
||||||
"google.golang.org/grpc/codes"
|
"google.golang.org/grpc/codes"
|
||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
|
"google.golang.org/protobuf/types/known/emptypb"
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
v1pb "github.com/yourselfhosted/slash/proto/gen/api/v1"
|
v1pb "github.com/yourselfhosted/slash/proto/gen/api/v1"
|
||||||
@ -38,7 +39,7 @@ func (s *APIV1Service) ListUsers(ctx context.Context, _ *v1pb.ListUsersRequest)
|
|||||||
return response, nil
|
return response, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) GetUser(ctx context.Context, request *v1pb.GetUserRequest) (*v1pb.GetUserResponse, error) {
|
func (s *APIV1Service) GetUser(ctx context.Context, request *v1pb.GetUserRequest) (*v1pb.User, error) {
|
||||||
user, err := s.Store.GetUser(ctx, &store.FindUser{
|
user, err := s.Store.GetUser(ctx, &store.FindUser{
|
||||||
ID: &request.Id,
|
ID: &request.Id,
|
||||||
})
|
})
|
||||||
@ -48,15 +49,10 @@ func (s *APIV1Service) GetUser(ctx context.Context, request *v1pb.GetUserRequest
|
|||||||
if user == nil {
|
if user == nil {
|
||||||
return nil, status.Errorf(codes.NotFound, "user not found")
|
return nil, status.Errorf(codes.NotFound, "user not found")
|
||||||
}
|
}
|
||||||
|
return convertUserFromStore(user), nil
|
||||||
userMessage := convertUserFromStore(user)
|
|
||||||
response := &v1pb.GetUserResponse{
|
|
||||||
User: userMessage,
|
|
||||||
}
|
|
||||||
return response, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) CreateUser(ctx context.Context, request *v1pb.CreateUserRequest) (*v1pb.CreateUserResponse, error) {
|
func (s *APIV1Service) CreateUser(ctx context.Context, request *v1pb.CreateUserRequest) (*v1pb.User, error) {
|
||||||
passwordHash, err := bcrypt.GenerateFromPassword([]byte(request.User.Password), bcrypt.DefaultCost)
|
passwordHash, err := bcrypt.GenerateFromPassword([]byte(request.User.Password), bcrypt.DefaultCost)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Internal, "failed to hash password: %v", err)
|
return nil, status.Errorf(codes.Internal, "failed to hash password: %v", err)
|
||||||
@ -75,13 +71,10 @@ func (s *APIV1Service) CreateUser(ctx context.Context, request *v1pb.CreateUserR
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Internal, "failed to create user: %v", err)
|
return nil, status.Errorf(codes.Internal, "failed to create user: %v", err)
|
||||||
}
|
}
|
||||||
response := &v1pb.CreateUserResponse{
|
return convertUserFromStore(user), nil
|
||||||
User: convertUserFromStore(user),
|
|
||||||
}
|
|
||||||
return response, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserRequest) (*v1pb.UpdateUserResponse, error) {
|
func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserRequest) (*v1pb.User, error) {
|
||||||
user, err := getCurrentUser(ctx, s.Store)
|
user, err := getCurrentUser(ctx, s.Store)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
||||||
@ -107,12 +100,10 @@ func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserR
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Internal, "failed to update user: %v", err)
|
return nil, status.Errorf(codes.Internal, "failed to update user: %v", err)
|
||||||
}
|
}
|
||||||
return &v1pb.UpdateUserResponse{
|
return convertUserFromStore(user), nil
|
||||||
User: convertUserFromStore(user),
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) DeleteUser(ctx context.Context, request *v1pb.DeleteUserRequest) (*v1pb.DeleteUserResponse, error) {
|
func (s *APIV1Service) DeleteUser(ctx context.Context, request *v1pb.DeleteUserRequest) (*emptypb.Empty, error) {
|
||||||
user, err := getCurrentUser(ctx, s.Store)
|
user, err := getCurrentUser(ctx, s.Store)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
||||||
@ -124,8 +115,7 @@ func (s *APIV1Service) DeleteUser(ctx context.Context, request *v1pb.DeleteUserR
|
|||||||
if err := s.Store.DeleteUser(ctx, &store.DeleteUser{ID: request.Id}); err != nil {
|
if err := s.Store.DeleteUser(ctx, &store.DeleteUser{ID: request.Id}); err != nil {
|
||||||
return nil, status.Errorf(codes.Internal, "failed to delete user: %v", err)
|
return nil, status.Errorf(codes.Internal, "failed to delete user: %v", err)
|
||||||
}
|
}
|
||||||
response := &v1pb.DeleteUserResponse{}
|
return &emptypb.Empty{}, nil
|
||||||
return response, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) ListUserAccessTokens(ctx context.Context, request *v1pb.ListUserAccessTokensRequest) (*v1pb.ListUserAccessTokensResponse, error) {
|
func (s *APIV1Service) ListUserAccessTokens(ctx context.Context, request *v1pb.ListUserAccessTokensRequest) (*v1pb.ListUserAccessTokensResponse, error) {
|
||||||
@ -182,7 +172,7 @@ func (s *APIV1Service) ListUserAccessTokens(ctx context.Context, request *v1pb.L
|
|||||||
return response, nil
|
return response, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) CreateUserAccessToken(ctx context.Context, request *v1pb.CreateUserAccessTokenRequest) (*v1pb.CreateUserAccessTokenResponse, error) {
|
func (s *APIV1Service) CreateUserAccessToken(ctx context.Context, request *v1pb.CreateUserAccessTokenRequest) (*v1pb.UserAccessToken, error) {
|
||||||
user, err := getCurrentUser(ctx, s.Store)
|
user, err := getCurrentUser(ctx, s.Store)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
||||||
@ -229,13 +219,10 @@ func (s *APIV1Service) CreateUserAccessToken(ctx context.Context, request *v1pb.
|
|||||||
if claims.ExpiresAt != nil {
|
if claims.ExpiresAt != nil {
|
||||||
userAccessToken.ExpiresAt = timestamppb.New(claims.ExpiresAt.Time)
|
userAccessToken.ExpiresAt = timestamppb.New(claims.ExpiresAt.Time)
|
||||||
}
|
}
|
||||||
response := &v1pb.CreateUserAccessTokenResponse{
|
return userAccessToken, nil
|
||||||
AccessToken: userAccessToken,
|
|
||||||
}
|
|
||||||
return response, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) DeleteUserAccessToken(ctx context.Context, request *v1pb.DeleteUserAccessTokenRequest) (*v1pb.DeleteUserAccessTokenResponse, error) {
|
func (s *APIV1Service) DeleteUserAccessToken(ctx context.Context, request *v1pb.DeleteUserAccessTokenRequest) (*emptypb.Empty, error) {
|
||||||
user, err := getCurrentUser(ctx, s.Store)
|
user, err := getCurrentUser(ctx, s.Store)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
||||||
@ -263,7 +250,7 @@ func (s *APIV1Service) DeleteUserAccessToken(ctx context.Context, request *v1pb.
|
|||||||
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
|
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &v1pb.DeleteUserAccessTokenResponse{}, nil
|
return &emptypb.Empty{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store.User, accessToken, description string) error {
|
func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store.User, accessToken, description string) error {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user