mirror of
https://github.com/usememos/memos.git
synced 2025-04-18 11:27:25 +02:00
chore: remove outdated activity definition
This commit is contained in:
parent
625ebbea1a
commit
36b4ba33fa
@ -1,136 +0,0 @@
|
|||||||
package v1
|
|
||||||
|
|
||||||
import "github.com/usememos/memos/server/profile"
|
|
||||||
|
|
||||||
// ActivityType is the type for an activity.
|
|
||||||
type ActivityType string
|
|
||||||
|
|
||||||
const (
|
|
||||||
// User related.
|
|
||||||
|
|
||||||
// ActivityUserCreate is the type for creating users.
|
|
||||||
ActivityUserCreate ActivityType = "user.create"
|
|
||||||
// ActivityUserUpdate is the type for updating users.
|
|
||||||
ActivityUserUpdate ActivityType = "user.update"
|
|
||||||
// ActivityUserDelete is the type for deleting users.
|
|
||||||
ActivityUserDelete ActivityType = "user.delete"
|
|
||||||
// ActivityUserAuthSignIn is the type for user signin.
|
|
||||||
ActivityUserAuthSignIn ActivityType = "user.auth.signin"
|
|
||||||
// ActivityUserAuthSignUp is the type for user signup.
|
|
||||||
ActivityUserAuthSignUp ActivityType = "user.auth.signup"
|
|
||||||
// ActivityUserSettingUpdate is the type for updating user settings.
|
|
||||||
ActivityUserSettingUpdate ActivityType = "user.setting.update"
|
|
||||||
|
|
||||||
// Memo related.
|
|
||||||
|
|
||||||
// ActivityMemoCreate is the type for creating memos.
|
|
||||||
ActivityMemoCreate ActivityType = "memo.create"
|
|
||||||
// ActivityMemoView is the type for viewing memos.
|
|
||||||
ActivityMemoView ActivityType = "memo.view"
|
|
||||||
// ActivityMemoUpdate is the type for updating memos.
|
|
||||||
ActivityMemoUpdate ActivityType = "memo.update"
|
|
||||||
// ActivityMemoDelete is the type for deleting memos.
|
|
||||||
ActivityMemoDelete ActivityType = "memo.delete"
|
|
||||||
|
|
||||||
// Resource related.
|
|
||||||
|
|
||||||
// ActivityResourceCreate is the type for creating resources.
|
|
||||||
ActivityResourceCreate ActivityType = "resource.create"
|
|
||||||
// ActivityResourceDelete is the type for deleting resources.
|
|
||||||
ActivityResourceDelete ActivityType = "resource.delete"
|
|
||||||
|
|
||||||
// Tag related.
|
|
||||||
|
|
||||||
// ActivityTagCreate is the type for creating tags.
|
|
||||||
ActivityTagCreate ActivityType = "tag.create"
|
|
||||||
// ActivityTagDelete is the type for deleting tags.
|
|
||||||
ActivityTagDelete ActivityType = "tag.delete"
|
|
||||||
|
|
||||||
// Server related.
|
|
||||||
|
|
||||||
// ActivityServerStart is the type for starting server.
|
|
||||||
ActivityServerStart ActivityType = "server.start"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (t ActivityType) String() string {
|
|
||||||
return string(t)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ActivityLevel is the level of activities.
|
|
||||||
type ActivityLevel string
|
|
||||||
|
|
||||||
const (
|
|
||||||
// ActivityInfo is the INFO level of activities.
|
|
||||||
ActivityInfo ActivityLevel = "INFO"
|
|
||||||
// ActivityWarn is the WARN level of activities.
|
|
||||||
ActivityWarn ActivityLevel = "WARN"
|
|
||||||
// ActivityError is the ERROR level of activities.
|
|
||||||
ActivityError ActivityLevel = "ERROR"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (l ActivityLevel) String() string {
|
|
||||||
return string(l)
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityUserCreatePayload struct {
|
|
||||||
UserID int32 `json:"userId"`
|
|
||||||
Username string `json:"username"`
|
|
||||||
Role Role `json:"role"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityUserAuthSignInPayload struct {
|
|
||||||
UserID int32 `json:"userId"`
|
|
||||||
IP string `json:"ip"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityUserAuthSignUpPayload struct {
|
|
||||||
Username string `json:"username"`
|
|
||||||
IP string `json:"ip"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityMemoCreatePayload struct {
|
|
||||||
MemoID int32 `json:"memoId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityMemoViewPayload struct {
|
|
||||||
MemoID int32 `json:"memoId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityResourceCreatePayload struct {
|
|
||||||
Filename string `json:"filename"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
Size int64 `json:"size"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityTagCreatePayload struct {
|
|
||||||
TagName string `json:"tagName"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActivityServerStartPayload struct {
|
|
||||||
ServerID string `json:"serverId"`
|
|
||||||
Profile *profile.Profile `json:"profile"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Activity struct {
|
|
||||||
ID int32 `json:"id"`
|
|
||||||
|
|
||||||
// Standard fields
|
|
||||||
CreatorID int32 `json:"creatorId"`
|
|
||||||
CreatedTs int64 `json:"createdTs"`
|
|
||||||
|
|
||||||
// Domain specific fields
|
|
||||||
Type ActivityType `json:"type"`
|
|
||||||
Level ActivityLevel `json:"level"`
|
|
||||||
Payload string `json:"payload"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ActivityCreate is the API message for creating an activity.
|
|
||||||
type ActivityCreate struct {
|
|
||||||
// Standard fields
|
|
||||||
CreatorID int32
|
|
||||||
|
|
||||||
// Domain specific fields
|
|
||||||
Type ActivityType `json:"type"`
|
|
||||||
Level ActivityLevel
|
|
||||||
Payload string `json:"payload"`
|
|
||||||
}
|
|
@ -117,9 +117,6 @@ func (s *APIV1Service) SignIn(c echo.Context) error {
|
|||||||
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
|
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
|
||||||
}
|
}
|
||||||
if err := s.createAuthSignInActivity(c, user); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
cookieExp := time.Now().Add(auth.CookieExpDuration)
|
cookieExp := time.Now().Add(auth.CookieExpDuration)
|
||||||
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
|
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
|
||||||
userMessage := convertUserFromStore(user)
|
userMessage := convertUserFromStore(user)
|
||||||
@ -241,9 +238,6 @@ func (s *APIV1Service) SignInSSO(c echo.Context) error {
|
|||||||
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
|
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
|
||||||
}
|
}
|
||||||
if err := s.createAuthSignInActivity(c, user); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
cookieExp := time.Now().Add(auth.CookieExpDuration)
|
cookieExp := time.Now().Add(auth.CookieExpDuration)
|
||||||
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
|
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
|
||||||
userMessage := convertUserFromStore(user)
|
userMessage := convertUserFromStore(user)
|
||||||
@ -366,9 +360,6 @@ func (s *APIV1Service) SignUp(c echo.Context) error {
|
|||||||
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
|
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
|
||||||
}
|
}
|
||||||
if err := s.createAuthSignUpActivity(c, user); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
cookieExp := time.Now().Add(auth.CookieExpDuration)
|
cookieExp := time.Now().Add(auth.CookieExpDuration)
|
||||||
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
|
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
|
||||||
userMessage := convertUserFromStore(user)
|
userMessage := convertUserFromStore(user)
|
||||||
@ -399,50 +390,6 @@ func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) createAuthSignInActivity(c echo.Context, user *store.User) error {
|
|
||||||
ctx := c.Request().Context()
|
|
||||||
payload := ActivityUserAuthSignInPayload{
|
|
||||||
UserID: user.ID,
|
|
||||||
IP: echo.ExtractIPFromRealIPHeader()(c.Request()),
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: user.ID,
|
|
||||||
Type: string(ActivityUserAuthSignIn),
|
|
||||||
Level: string(ActivityInfo),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *APIV1Service) createAuthSignUpActivity(c echo.Context, user *store.User) error {
|
|
||||||
ctx := c.Request().Context()
|
|
||||||
payload := ActivityUserAuthSignUpPayload{
|
|
||||||
Username: user.Username,
|
|
||||||
IP: echo.ExtractIPFromRealIPHeader()(c.Request()),
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: user.ID,
|
|
||||||
Type: string(ActivityUserAuthSignUp),
|
|
||||||
Level: string(ActivityInfo),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// removeAccessTokenAndCookies removes the jwt token from the cookies.
|
// removeAccessTokenAndCookies removes the jwt token from the cookies.
|
||||||
func removeAccessTokenAndCookies(c echo.Context) {
|
func removeAccessTokenAndCookies(c echo.Context) {
|
||||||
cookieExp := time.Now().Add(-1 * time.Hour)
|
cookieExp := time.Now().Add(-1 * time.Hour)
|
||||||
|
@ -319,9 +319,6 @@ func (s *APIV1Service) CreateMemo(c echo.Context) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create memo").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create memo").SetInternal(err)
|
||||||
}
|
}
|
||||||
if err := s.createMemoCreateActivity(ctx, memo); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, resourceID := range createMemoRequest.ResourceIDList {
|
for _, resourceID := range createMemoRequest.ResourceIDList {
|
||||||
if _, err := s.Store.UpdateResource(ctx, &store.UpdateResource{
|
if _, err := s.Store.UpdateResource(ctx, &store.UpdateResource{
|
||||||
@ -340,6 +337,18 @@ func (s *APIV1Service) CreateMemo(c echo.Context) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert memo relation").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert memo relation").SetInternal(err)
|
||||||
}
|
}
|
||||||
|
if memoRelationUpsert.Type == MemoRelationComment {
|
||||||
|
relatedMemo, err := s.Store.GetMemo(ctx, &store.FindMemo{
|
||||||
|
ID: &memoRelationUpsert.RelatedMemoID,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to get related memo").SetInternal(err)
|
||||||
|
}
|
||||||
|
// nolint
|
||||||
|
if relatedMemo.CreatorID != memo.CreatorID {
|
||||||
|
// TODO: When a memo is commented by others, send notification to the memo creator.
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
composedMemo, err := s.Store.GetMemo(ctx, &store.FindMemo{
|
composedMemo, err := s.Store.GetMemo(ctx, &store.FindMemo{
|
||||||
@ -567,9 +576,6 @@ func (s *APIV1Service) GetMemo(c echo.Context) error {
|
|||||||
return echo.NewHTTPError(http.StatusForbidden, "this memo is protected, missing user in session")
|
return echo.NewHTTPError(http.StatusForbidden, "this memo is protected, missing user in session")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err := s.createMemoViewActivity(c, memo, userID); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
memoResponse, err := s.convertMemoFromStore(ctx, memo)
|
memoResponse, err := s.convertMemoFromStore(ctx, memo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to compose memo response").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to compose memo response").SetInternal(err)
|
||||||
@ -766,47 +772,6 @@ func (s *APIV1Service) UpdateMemo(c echo.Context) error {
|
|||||||
return c.JSON(http.StatusOK, memoResponse)
|
return c.JSON(http.StatusOK, memoResponse)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) createMemoCreateActivity(ctx context.Context, memo *store.Memo) error {
|
|
||||||
payload := ActivityMemoCreatePayload{
|
|
||||||
MemoID: memo.ID,
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: memo.CreatorID,
|
|
||||||
Type: ActivityMemoCreate.String(),
|
|
||||||
Level: ActivityInfo.String(),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *APIV1Service) createMemoViewActivity(c echo.Context, memo *store.Memo, userID int32) error {
|
|
||||||
ctx := c.Request().Context()
|
|
||||||
payload := ActivityMemoViewPayload{
|
|
||||||
MemoID: memo.ID,
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: userID,
|
|
||||||
Type: string(ActivityMemoView),
|
|
||||||
Level: string(ActivityInfo),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *APIV1Service) convertMemoFromStore(ctx context.Context, memo *store.Memo) (*Memo, error) {
|
func (s *APIV1Service) convertMemoFromStore(ctx context.Context, memo *store.Memo) (*Memo, error) {
|
||||||
memoResponse := &Memo{
|
memoResponse := &Memo{
|
||||||
ID: memo.ID,
|
ID: memo.ID,
|
||||||
|
@ -14,8 +14,8 @@ import (
|
|||||||
type MemoRelationType string
|
type MemoRelationType string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
MemoRelationReference MemoRelationType = "REFERENCE"
|
MemoRelationReference MemoRelationType = "REFERENCE"
|
||||||
MemoRelationAdditional MemoRelationType = "ADDITIONAL"
|
MemoRelationComment MemoRelationType = "COMMENT"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MemoRelation struct {
|
type MemoRelation struct {
|
||||||
|
@ -161,9 +161,6 @@ func (s *APIV1Service) CreateResource(c echo.Context) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create resource").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create resource").SetInternal(err)
|
||||||
}
|
}
|
||||||
if err := s.createResourceCreateActivity(ctx, resource); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
return c.JSON(http.StatusOK, convertResourceFromStore(resource))
|
return c.JSON(http.StatusOK, convertResourceFromStore(resource))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,9 +230,6 @@ func (s *APIV1Service) UploadResource(c echo.Context) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create resource").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create resource").SetInternal(err)
|
||||||
}
|
}
|
||||||
if err := s.createResourceCreateActivity(ctx, resource); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
return c.JSON(http.StatusOK, convertResourceFromStore(resource))
|
return c.JSON(http.StatusOK, convertResourceFromStore(resource))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,28 +347,6 @@ func (s *APIV1Service) UpdateResource(c echo.Context) error {
|
|||||||
return c.JSON(http.StatusOK, convertResourceFromStore(resource))
|
return c.JSON(http.StatusOK, convertResourceFromStore(resource))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) createResourceCreateActivity(ctx context.Context, resource *store.Resource) error {
|
|
||||||
payload := ActivityResourceCreatePayload{
|
|
||||||
Filename: resource.Filename,
|
|
||||||
Type: resource.Type,
|
|
||||||
Size: resource.Size,
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: resource.CreatorID,
|
|
||||||
Type: ActivityResourceCreate.String(),
|
|
||||||
Level: ActivityInfo.String(),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func replacePathTemplate(path, filename string) string {
|
func replacePathTemplate(path, filename string) string {
|
||||||
t := time.Now()
|
t := time.Now()
|
||||||
path = fileKeyPattern.ReplaceAllStringFunc(path, func(s string) string {
|
path = fileKeyPattern.ReplaceAllStringFunc(path, func(s string) string {
|
||||||
|
@ -8,7 +8,6 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
"github.com/pkg/errors"
|
|
||||||
"golang.org/x/exp/slices"
|
"golang.org/x/exp/slices"
|
||||||
|
|
||||||
"github.com/usememos/memos/store"
|
"github.com/usememos/memos/store"
|
||||||
@ -99,9 +98,6 @@ func (s *APIV1Service) CreateTag(c echo.Context) error {
|
|||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert tag").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert tag").SetInternal(err)
|
||||||
}
|
}
|
||||||
tagMessage := convertTagFromStore(tag)
|
tagMessage := convertTagFromStore(tag)
|
||||||
if err := s.createTagCreateActivity(c, tagMessage); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
return c.JSON(http.StatusOK, tagMessage.Name)
|
return c.JSON(http.StatusOK, tagMessage.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,27 +192,6 @@ func (s *APIV1Service) GetTagSuggestion(c echo.Context) error {
|
|||||||
return c.JSON(http.StatusOK, tagList)
|
return c.JSON(http.StatusOK, tagList)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) createTagCreateActivity(c echo.Context, tag *Tag) error {
|
|
||||||
ctx := c.Request().Context()
|
|
||||||
payload := ActivityTagCreatePayload{
|
|
||||||
TagName: tag.Name,
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: tag.CreatorID,
|
|
||||||
Type: ActivityTagCreate.String(),
|
|
||||||
Level: ActivityInfo.String(),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func convertTagFromStore(tag *store.Tag) *Tag {
|
func convertTagFromStore(tag *store.Tag) *Tag {
|
||||||
return &Tag{
|
return &Tag{
|
||||||
Name: tag.Name,
|
Name: tag.Name,
|
||||||
|
@ -167,9 +167,6 @@ func (s *APIV1Service) CreateUser(c echo.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
userMessage := convertUserFromStore(user)
|
userMessage := convertUserFromStore(user)
|
||||||
if err := s.createUserCreateActivity(c, userMessage); err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create activity").SetInternal(err)
|
|
||||||
}
|
|
||||||
metric.Enqueue("user create")
|
metric.Enqueue("user create")
|
||||||
return c.JSON(http.StatusOK, userMessage)
|
return c.JSON(http.StatusOK, userMessage)
|
||||||
}
|
}
|
||||||
@ -473,29 +470,6 @@ func (update UpdateUserRequest) Validate() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) createUserCreateActivity(c echo.Context, user *User) error {
|
|
||||||
ctx := c.Request().Context()
|
|
||||||
payload := ActivityUserCreatePayload{
|
|
||||||
UserID: user.ID,
|
|
||||||
Username: user.Username,
|
|
||||||
Role: user.Role,
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
CreatorID: user.ID,
|
|
||||||
Type: ActivityUserCreate.String(),
|
|
||||||
Level: ActivityInfo.String(),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func convertUserFromStore(user *store.User) *User {
|
func convertUserFromStore(user *store.User) *User {
|
||||||
return &User{
|
return &User{
|
||||||
ID: user.ID,
|
ID: user.ID,
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
"google.golang.org/grpc/codes"
|
"google.golang.org/grpc/codes"
|
||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
|
|
||||||
@ -87,14 +88,27 @@ func (s *APIV2Service) DeleteInbox(ctx context.Context, request *apiv2pb.DeleteI
|
|||||||
return &apiv2pb.DeleteInboxResponse{}, nil
|
return &apiv2pb.DeleteInboxResponse{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*APIV2Service) convertInboxFromStore(_ context.Context, inbox *store.Inbox) (*apiv2pb.Inbox, error) {
|
func (s *APIV2Service) convertInboxFromStore(ctx context.Context, inbox *store.Inbox) (*apiv2pb.Inbox, error) {
|
||||||
// TODO: convert sender and receiver.
|
sender, err := s.Store.GetUser(ctx, &store.FindUser{
|
||||||
|
ID: &inbox.SenderID,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed to get sender")
|
||||||
|
}
|
||||||
|
receiver, err := s.Store.GetUser(ctx, &store.FindUser{
|
||||||
|
ID: &inbox.ReceiverID,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed to get receiver")
|
||||||
|
}
|
||||||
|
|
||||||
return &apiv2pb.Inbox{
|
return &apiv2pb.Inbox{
|
||||||
Name: fmt.Sprintf("inbox/%d", inbox.ID),
|
Name: fmt.Sprintf("inbox/%d", inbox.ID),
|
||||||
Status: convertInboxStatusFromStore(inbox.Status),
|
Sender: fmt.Sprintf("users/%s", sender.Username),
|
||||||
Title: inbox.Message.Title,
|
Receiver: fmt.Sprintf("users/%s", receiver.Username),
|
||||||
Content: inbox.Message.Content,
|
Status: convertInboxStatusFromStore(inbox.Status),
|
||||||
Link: inbox.Message.Link,
|
Type: apiv2pb.Inbox_Type(inbox.Message.Type),
|
||||||
|
ActivityId: inbox.Message.ActivityId,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,11 +44,13 @@ message Inbox {
|
|||||||
}
|
}
|
||||||
Status status = 4;
|
Status status = 4;
|
||||||
|
|
||||||
string title = 5;
|
enum Type {
|
||||||
|
TYPE_UNSPECIFIED = 0;
|
||||||
|
TYPE_MEMO_COMMENT = 1;
|
||||||
|
}
|
||||||
|
Type type = 5;
|
||||||
|
|
||||||
string content = 6;
|
optional int32 activity_id = 6;
|
||||||
|
|
||||||
string link = 7;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListInboxRequest {
|
message ListInboxRequest {
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
- [UpdateInboxResponse](#memos-api-v2-UpdateInboxResponse)
|
- [UpdateInboxResponse](#memos-api-v2-UpdateInboxResponse)
|
||||||
|
|
||||||
- [Inbox.Status](#memos-api-v2-Inbox-Status)
|
- [Inbox.Status](#memos-api-v2-Inbox-Status)
|
||||||
|
- [Inbox.Type](#memos-api-v2-Inbox-Type)
|
||||||
|
|
||||||
- [InboxService](#memos-api-v2-InboxService)
|
- [InboxService](#memos-api-v2-InboxService)
|
||||||
|
|
||||||
@ -166,9 +167,8 @@
|
|||||||
| sender | [string](#string) | | Format: users/{username} |
|
| sender | [string](#string) | | Format: users/{username} |
|
||||||
| receiver | [string](#string) | | Format: users/{username} |
|
| receiver | [string](#string) | | Format: users/{username} |
|
||||||
| status | [Inbox.Status](#memos-api-v2-Inbox-Status) | | |
|
| status | [Inbox.Status](#memos-api-v2-Inbox-Status) | | |
|
||||||
| title | [string](#string) | | |
|
| type | [Inbox.Type](#memos-api-v2-Inbox-Type) | | |
|
||||||
| content | [string](#string) | | |
|
| activity_id | [int32](#int32) | optional | |
|
||||||
| link | [string](#string) | | |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -252,6 +252,18 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="memos-api-v2-Inbox-Type"></a>
|
||||||
|
|
||||||
|
### Inbox.Type
|
||||||
|
|
||||||
|
|
||||||
|
| Name | Number | Description |
|
||||||
|
| ---- | ------ | ----------- |
|
||||||
|
| TYPE_UNSPECIFIED | 0 | |
|
||||||
|
| TYPE_MEMO_COMMENT | 1 | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,6 +74,52 @@ func (Inbox_Status) EnumDescriptor() ([]byte, []int) {
|
|||||||
return file_api_v2_inbox_service_proto_rawDescGZIP(), []int{0, 0}
|
return file_api_v2_inbox_service_proto_rawDescGZIP(), []int{0, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Inbox_Type int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
Inbox_TYPE_UNSPECIFIED Inbox_Type = 0
|
||||||
|
Inbox_TYPE_MEMO_COMMENT Inbox_Type = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for Inbox_Type.
|
||||||
|
var (
|
||||||
|
Inbox_Type_name = map[int32]string{
|
||||||
|
0: "TYPE_UNSPECIFIED",
|
||||||
|
1: "TYPE_MEMO_COMMENT",
|
||||||
|
}
|
||||||
|
Inbox_Type_value = map[string]int32{
|
||||||
|
"TYPE_UNSPECIFIED": 0,
|
||||||
|
"TYPE_MEMO_COMMENT": 1,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x Inbox_Type) Enum() *Inbox_Type {
|
||||||
|
p := new(Inbox_Type)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x Inbox_Type) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Inbox_Type) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_api_v2_inbox_service_proto_enumTypes[1].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Inbox_Type) Type() protoreflect.EnumType {
|
||||||
|
return &file_api_v2_inbox_service_proto_enumTypes[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x Inbox_Type) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use Inbox_Type.Descriptor instead.
|
||||||
|
func (Inbox_Type) EnumDescriptor() ([]byte, []int) {
|
||||||
|
return file_api_v2_inbox_service_proto_rawDescGZIP(), []int{0, 1}
|
||||||
|
}
|
||||||
|
|
||||||
type Inbox struct {
|
type Inbox struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -85,11 +131,10 @@ type Inbox struct {
|
|||||||
// Format: users/{username}
|
// Format: users/{username}
|
||||||
Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"`
|
Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"`
|
||||||
// Format: users/{username}
|
// Format: users/{username}
|
||||||
Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"`
|
Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"`
|
||||||
Status Inbox_Status `protobuf:"varint,4,opt,name=status,proto3,enum=memos.api.v2.Inbox_Status" json:"status,omitempty"`
|
Status Inbox_Status `protobuf:"varint,4,opt,name=status,proto3,enum=memos.api.v2.Inbox_Status" json:"status,omitempty"`
|
||||||
Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"`
|
Type Inbox_Type `protobuf:"varint,5,opt,name=type,proto3,enum=memos.api.v2.Inbox_Type" json:"type,omitempty"`
|
||||||
Content string `protobuf:"bytes,6,opt,name=content,proto3" json:"content,omitempty"`
|
ActivityId *int32 `protobuf:"varint,6,opt,name=activity_id,json=activityId,proto3,oneof" json:"activity_id,omitempty"`
|
||||||
Link string `protobuf:"bytes,7,opt,name=link,proto3" json:"link,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Inbox) Reset() {
|
func (x *Inbox) Reset() {
|
||||||
@ -152,25 +197,18 @@ func (x *Inbox) GetStatus() Inbox_Status {
|
|||||||
return Inbox_STATUS_UNSPECIFIED
|
return Inbox_STATUS_UNSPECIFIED
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Inbox) GetTitle() string {
|
func (x *Inbox) GetType() Inbox_Type {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Title
|
return x.Type
|
||||||
}
|
}
|
||||||
return ""
|
return Inbox_TYPE_UNSPECIFIED
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Inbox) GetContent() string {
|
func (x *Inbox) GetActivityId() int32 {
|
||||||
if x != nil {
|
if x != nil && x.ActivityId != nil {
|
||||||
return x.Content
|
return *x.ActivityId
|
||||||
}
|
}
|
||||||
return ""
|
return 0
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Inbox) GetLink() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Link
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListInboxRequest struct {
|
type ListInboxRequest struct {
|
||||||
@ -468,7 +506,7 @@ var file_api_v2_inbox_service_proto_rawDesc = []byte{
|
|||||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||||
0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||||
0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72,
|
0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72,
|
||||||
0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x12, 0x0a,
|
0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x12, 0x0a,
|
||||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
|
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
|
||||||
0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63,
|
0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63,
|
||||||
@ -476,72 +514,78 @@ var file_api_v2_inbox_service_proto_rawDesc = []byte{
|
|||||||
0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
|
0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
|
||||||
0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
|
0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
|
||||||
0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
|
0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
|
||||||
0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
|
0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70,
|
||||||
0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
|
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
|
||||||
0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
|
0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x2e, 0x54, 0x79, 0x70,
|
||||||
0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e,
|
0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76,
|
||||||
0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x44, 0x0a,
|
0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a,
|
||||||
|
0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x22, 0x44, 0x0a,
|
||||||
0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55,
|
0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55,
|
||||||
0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
|
0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
|
||||||
0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52,
|
0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52,
|
||||||
0x45, 0x41, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45,
|
0x45, 0x41, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45,
|
||||||
0x44, 0x10, 0x03, 0x22, 0x26, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78,
|
0x44, 0x10, 0x03, 0x22, 0x33, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54,
|
||||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
|
0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3e, 0x0a, 0x11, 0x4c,
|
0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x5f, 0x43,
|
||||||
|
0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74,
|
||||||
|
0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74,
|
||||||
|
0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
|
||||||
|
0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72,
|
||||||
|
0x22, 0x3e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x18, 0x01,
|
||||||
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
|
||||||
|
0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78,
|
||||||
|
0x22, 0x7c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x18,
|
||||||
|
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
|
||||||
|
0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f,
|
||||||
|
0x78, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61,
|
||||||
|
0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x40,
|
||||||
|
0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x18, 0x01,
|
||||||
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
|
||||||
|
0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78,
|
||||||
|
0x22, 0x28, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65,
|
||||||
|
0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
|
0x65, 0x32, 0xed, 0x02, 0x0a, 0x0c, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x53, 0x65, 0x72, 0x76, 0x69,
|
||||||
|
0x63, 0x65, 0x12, 0x63, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12,
|
||||||
|
0x1e, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4c,
|
||||||
|
0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||||
|
0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4c,
|
||||||
0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||||
0x12, 0x29, 0x0a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
|
||||||
0x13, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49,
|
0x32, 0x2f, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x80, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61,
|
||||||
0x6e, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x22, 0x7c, 0x0a, 0x12, 0x55,
|
0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
|
||||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62,
|
||||||
0x74, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
|
||||||
0x32, 0x13, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
|
0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49,
|
||||||
0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x3b, 0x0a, 0x0b,
|
0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0xda, 0x41,
|
||||||
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x11, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61,
|
||||||
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x32,
|
||||||
0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75,
|
0x09, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x75, 0x0a, 0x0b, 0x44, 0x65,
|
||||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x40, 0x0a, 0x13, 0x55, 0x70, 0x64,
|
0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
|
||||||
0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49,
|
||||||
0x12, 0x29, 0x0a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65,
|
||||||
0x13, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49,
|
0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
||||||
0x6e, 0x62, 0x6f, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x22, 0x28, 0x0a, 0x12, 0x44,
|
0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21,
|
||||||
0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f,
|
||||||
0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x2f, 0x2a,
|
||||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49,
|
0x7d, 0x42, 0xa9, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
|
||||||
0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xed, 0x02, 0x0a,
|
0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x42, 0x11, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x53, 0x65, 0x72,
|
||||||
0x0c, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x63, 0x0a,
|
0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74,
|
||||||
0x09, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x6d,
|
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
|
||||||
0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e,
|
0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e,
|
||||||
0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x6d,
|
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x32, 0xa2, 0x02, 0x03,
|
||||||
0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e,
|
0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e,
|
||||||
0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4,
|
0x56, 0x32, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56,
|
||||||
0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x62,
|
0x32, 0xe2, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32,
|
||||||
0x6f, 0x78, 0x12, 0x80, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62,
|
0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d,
|
||||||
0x6f, 0x78, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
|
0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70,
|
||||||
0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71,
|
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0xda, 0x41, 0x11, 0x69, 0x6e, 0x62, 0x6f,
|
|
||||||
0x78, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4,
|
|
||||||
0x93, 0x02, 0x12, 0x3a, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x32, 0x09, 0x2f, 0x76, 0x32, 0x2f,
|
|
||||||
0x69, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x75, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49,
|
|
||||||
0x6e, 0x62, 0x6f, 0x78, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52,
|
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
|
|
||||||
0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f,
|
|
||||||
0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0xda, 0x41, 0x04, 0x6e, 0x61,
|
|
||||||
0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e,
|
|
||||||
0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x2f, 0x2a, 0x7d, 0x42, 0xa9, 0x01, 0x0a,
|
|
||||||
0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
|
|
||||||
0x32, 0x42, 0x11, 0x49, 0x6e, 0x62, 0x6f, 0x78, 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 (
|
var (
|
||||||
@ -556,36 +600,38 @@ func file_api_v2_inbox_service_proto_rawDescGZIP() []byte {
|
|||||||
return file_api_v2_inbox_service_proto_rawDescData
|
return file_api_v2_inbox_service_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_api_v2_inbox_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
var file_api_v2_inbox_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||||
var file_api_v2_inbox_service_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
var file_api_v2_inbox_service_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||||||
var file_api_v2_inbox_service_proto_goTypes = []interface{}{
|
var file_api_v2_inbox_service_proto_goTypes = []interface{}{
|
||||||
(Inbox_Status)(0), // 0: memos.api.v2.Inbox.Status
|
(Inbox_Status)(0), // 0: memos.api.v2.Inbox.Status
|
||||||
(*Inbox)(nil), // 1: memos.api.v2.Inbox
|
(Inbox_Type)(0), // 1: memos.api.v2.Inbox.Type
|
||||||
(*ListInboxRequest)(nil), // 2: memos.api.v2.ListInboxRequest
|
(*Inbox)(nil), // 2: memos.api.v2.Inbox
|
||||||
(*ListInboxResponse)(nil), // 3: memos.api.v2.ListInboxResponse
|
(*ListInboxRequest)(nil), // 3: memos.api.v2.ListInboxRequest
|
||||||
(*UpdateInboxRequest)(nil), // 4: memos.api.v2.UpdateInboxRequest
|
(*ListInboxResponse)(nil), // 4: memos.api.v2.ListInboxResponse
|
||||||
(*UpdateInboxResponse)(nil), // 5: memos.api.v2.UpdateInboxResponse
|
(*UpdateInboxRequest)(nil), // 5: memos.api.v2.UpdateInboxRequest
|
||||||
(*DeleteInboxRequest)(nil), // 6: memos.api.v2.DeleteInboxRequest
|
(*UpdateInboxResponse)(nil), // 6: memos.api.v2.UpdateInboxResponse
|
||||||
(*DeleteInboxResponse)(nil), // 7: memos.api.v2.DeleteInboxResponse
|
(*DeleteInboxRequest)(nil), // 7: memos.api.v2.DeleteInboxRequest
|
||||||
(*fieldmaskpb.FieldMask)(nil), // 8: google.protobuf.FieldMask
|
(*DeleteInboxResponse)(nil), // 8: memos.api.v2.DeleteInboxResponse
|
||||||
|
(*fieldmaskpb.FieldMask)(nil), // 9: google.protobuf.FieldMask
|
||||||
}
|
}
|
||||||
var file_api_v2_inbox_service_proto_depIdxs = []int32{
|
var file_api_v2_inbox_service_proto_depIdxs = []int32{
|
||||||
0, // 0: memos.api.v2.Inbox.status:type_name -> memos.api.v2.Inbox.Status
|
0, // 0: memos.api.v2.Inbox.status:type_name -> memos.api.v2.Inbox.Status
|
||||||
1, // 1: memos.api.v2.ListInboxResponse.inbox:type_name -> memos.api.v2.Inbox
|
1, // 1: memos.api.v2.Inbox.type:type_name -> memos.api.v2.Inbox.Type
|
||||||
1, // 2: memos.api.v2.UpdateInboxRequest.inbox:type_name -> memos.api.v2.Inbox
|
2, // 2: memos.api.v2.ListInboxResponse.inbox:type_name -> memos.api.v2.Inbox
|
||||||
8, // 3: memos.api.v2.UpdateInboxRequest.update_mask:type_name -> google.protobuf.FieldMask
|
2, // 3: memos.api.v2.UpdateInboxRequest.inbox:type_name -> memos.api.v2.Inbox
|
||||||
1, // 4: memos.api.v2.UpdateInboxResponse.inbox:type_name -> memos.api.v2.Inbox
|
9, // 4: memos.api.v2.UpdateInboxRequest.update_mask:type_name -> google.protobuf.FieldMask
|
||||||
2, // 5: memos.api.v2.InboxService.ListInbox:input_type -> memos.api.v2.ListInboxRequest
|
2, // 5: memos.api.v2.UpdateInboxResponse.inbox:type_name -> memos.api.v2.Inbox
|
||||||
4, // 6: memos.api.v2.InboxService.UpdateInbox:input_type -> memos.api.v2.UpdateInboxRequest
|
3, // 6: memos.api.v2.InboxService.ListInbox:input_type -> memos.api.v2.ListInboxRequest
|
||||||
6, // 7: memos.api.v2.InboxService.DeleteInbox:input_type -> memos.api.v2.DeleteInboxRequest
|
5, // 7: memos.api.v2.InboxService.UpdateInbox:input_type -> memos.api.v2.UpdateInboxRequest
|
||||||
3, // 8: memos.api.v2.InboxService.ListInbox:output_type -> memos.api.v2.ListInboxResponse
|
7, // 8: memos.api.v2.InboxService.DeleteInbox:input_type -> memos.api.v2.DeleteInboxRequest
|
||||||
5, // 9: memos.api.v2.InboxService.UpdateInbox:output_type -> memos.api.v2.UpdateInboxResponse
|
4, // 9: memos.api.v2.InboxService.ListInbox:output_type -> memos.api.v2.ListInboxResponse
|
||||||
7, // 10: memos.api.v2.InboxService.DeleteInbox:output_type -> memos.api.v2.DeleteInboxResponse
|
6, // 10: memos.api.v2.InboxService.UpdateInbox:output_type -> memos.api.v2.UpdateInboxResponse
|
||||||
8, // [8:11] is the sub-list for method output_type
|
8, // 11: memos.api.v2.InboxService.DeleteInbox:output_type -> memos.api.v2.DeleteInboxResponse
|
||||||
5, // [5:8] is the sub-list for method input_type
|
9, // [9:12] is the sub-list for method output_type
|
||||||
5, // [5:5] is the sub-list for extension type_name
|
6, // [6:9] is the sub-list for method input_type
|
||||||
5, // [5:5] is the sub-list for extension extendee
|
6, // [6:6] is the sub-list for extension type_name
|
||||||
0, // [0:5] is the sub-list for field type_name
|
6, // [6:6] is the sub-list for extension extendee
|
||||||
|
0, // [0:6] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_api_v2_inbox_service_proto_init() }
|
func init() { file_api_v2_inbox_service_proto_init() }
|
||||||
@ -679,12 +725,13 @@ func file_api_v2_inbox_service_proto_init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
file_api_v2_inbox_service_proto_msgTypes[0].OneofWrappers = []interface{}{}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_api_v2_inbox_service_proto_rawDesc,
|
RawDescriptor: file_api_v2_inbox_service_proto_rawDesc,
|
||||||
NumEnums: 1,
|
NumEnums: 2,
|
||||||
NumMessages: 7,
|
NumMessages: 7,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 1,
|
NumServices: 1,
|
||||||
|
@ -4,10 +4,15 @@
|
|||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
- [store/activity.proto](#store_activity-proto)
|
- [store/activity.proto](#store_activity-proto)
|
||||||
|
- [ActivityMemoCommentPayload](#memos-store-ActivityMemoCommentPayload)
|
||||||
|
- [ActivityPayload](#memos-store-ActivityPayload)
|
||||||
|
|
||||||
- [store/common.proto](#store_common-proto)
|
- [store/common.proto](#store_common-proto)
|
||||||
- [store/inbox.proto](#store_inbox-proto)
|
- [store/inbox.proto](#store_inbox-proto)
|
||||||
- [InboxMessage](#memos-store-InboxMessage)
|
- [InboxMessage](#memos-store-InboxMessage)
|
||||||
|
|
||||||
|
- [InboxMessage.Type](#memos-store-InboxMessage-Type)
|
||||||
|
|
||||||
- [store/system_setting.proto](#store_system_setting-proto)
|
- [store/system_setting.proto](#store_system_setting-proto)
|
||||||
- [BackupConfig](#memos-store-BackupConfig)
|
- [BackupConfig](#memos-store-BackupConfig)
|
||||||
|
|
||||||
@ -31,6 +36,37 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="memos-store-ActivityMemoCommentPayload"></a>
|
||||||
|
|
||||||
|
### ActivityMemoCommentPayload
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| memo_id | [int32](#int32) | | |
|
||||||
|
| related_memo_id | [int32](#int32) | | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="memos-store-ActivityPayload"></a>
|
||||||
|
|
||||||
|
### ActivityPayload
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| memo_comment | [ActivityMemoCommentPayload](#memos-store-ActivityMemoCommentPayload) | | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -71,9 +107,7 @@
|
|||||||
|
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| title | [string](#string) | | |
|
| type | [InboxMessage.Type](#memos-store-InboxMessage-Type) | | |
|
||||||
| content | [string](#string) | | |
|
|
||||||
| link | [string](#string) | | |
|
|
||||||
| activity_id | [int32](#int32) | optional | |
|
| activity_id | [int32](#int32) | optional | |
|
||||||
|
|
||||||
|
|
||||||
@ -83,6 +117,18 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="memos-store-InboxMessage-Type"></a>
|
||||||
|
|
||||||
|
### InboxMessage.Type
|
||||||
|
|
||||||
|
|
||||||
|
| Name | Number | Description |
|
||||||
|
| ---- | ------ | ----------- |
|
||||||
|
| TYPE_UNSPECIFIED | 0 | |
|
||||||
|
| TYPE_MEMO_COMMENT | 1 | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -19,31 +20,162 @@ const (
|
|||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ActivityMemoCommentPayload struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
MemoId int32 `protobuf:"varint,1,opt,name=memo_id,json=memoId,proto3" json:"memo_id,omitempty"`
|
||||||
|
RelatedMemoId int32 `protobuf:"varint,2,opt,name=related_memo_id,json=relatedMemoId,proto3" json:"related_memo_id,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityMemoCommentPayload) Reset() {
|
||||||
|
*x = ActivityMemoCommentPayload{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_store_activity_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityMemoCommentPayload) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ActivityMemoCommentPayload) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ActivityMemoCommentPayload) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_store_activity_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ActivityMemoCommentPayload.ProtoReflect.Descriptor instead.
|
||||||
|
func (*ActivityMemoCommentPayload) Descriptor() ([]byte, []int) {
|
||||||
|
return file_store_activity_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityMemoCommentPayload) GetMemoId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.MemoId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityMemoCommentPayload) GetRelatedMemoId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.RelatedMemoId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type ActivityPayload struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
MemoComment *ActivityMemoCommentPayload `protobuf:"bytes,1,opt,name=memo_comment,json=memoComment,proto3" json:"memo_comment,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityPayload) Reset() {
|
||||||
|
*x = ActivityPayload{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_store_activity_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityPayload) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ActivityPayload) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ActivityPayload) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_store_activity_proto_msgTypes[1]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ActivityPayload.ProtoReflect.Descriptor instead.
|
||||||
|
func (*ActivityPayload) Descriptor() ([]byte, []int) {
|
||||||
|
return file_store_activity_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ActivityPayload) GetMemoComment() *ActivityMemoCommentPayload {
|
||||||
|
if x != nil {
|
||||||
|
return x.MemoComment
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
var File_store_activity_proto protoreflect.FileDescriptor
|
var File_store_activity_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_store_activity_proto_rawDesc = []byte{
|
var file_store_activity_proto_rawDesc = []byte{
|
||||||
0x0a, 0x14, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
|
0x0a, 0x14, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74,
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74,
|
||||||
0x6f, 0x72, 0x65, 0x42, 0x98, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
|
0x6f, 0x72, 0x65, 0x22, 0x5d, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4d,
|
||||||
0x73, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
|
0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61,
|
||||||
0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
0x64, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x65,
|
0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65,
|
||||||
0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x74,
|
0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
|
||||||
0x6f, 0x72, 0x65, 0xa2, 0x02, 0x03, 0x4d, 0x53, 0x58, 0xaa, 0x02, 0x0b, 0x4d, 0x65, 0x6d, 0x6f,
|
0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f,
|
||||||
0x73, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0xca, 0x02, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c,
|
0x49, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61,
|
||||||
0x53, 0x74, 0x6f, 0x72, 0x65, 0xe2, 0x02, 0x17, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74,
|
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4a, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x6f,
|
||||||
0x6f, 0x72, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea,
|
0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x65,
|
||||||
0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x62, 0x06,
|
0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79,
|
||||||
|
0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
|
||||||
|
0x74, 0x42, 0x98, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50,
|
||||||
|
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x29, 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, 0x73, 0x74, 0x6f, 0x72,
|
||||||
|
0x65, 0xa2, 0x02, 0x03, 0x4d, 0x53, 0x58, 0xaa, 0x02, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
|
||||||
|
0x53, 0x74, 0x6f, 0x72, 0x65, 0xca, 0x02, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74,
|
||||||
|
0x6f, 0x72, 0x65, 0xe2, 0x02, 0x17, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x6f, 0x72,
|
||||||
|
0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0c,
|
||||||
|
0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72,
|
||||||
|
0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_store_activity_proto_goTypes = []interface{}{}
|
var (
|
||||||
|
file_store_activity_proto_rawDescOnce sync.Once
|
||||||
|
file_store_activity_proto_rawDescData = file_store_activity_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_store_activity_proto_rawDescGZIP() []byte {
|
||||||
|
file_store_activity_proto_rawDescOnce.Do(func() {
|
||||||
|
file_store_activity_proto_rawDescData = protoimpl.X.CompressGZIP(file_store_activity_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_store_activity_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_store_activity_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||||
|
var file_store_activity_proto_goTypes = []interface{}{
|
||||||
|
(*ActivityMemoCommentPayload)(nil), // 0: memos.store.ActivityMemoCommentPayload
|
||||||
|
(*ActivityPayload)(nil), // 1: memos.store.ActivityPayload
|
||||||
|
}
|
||||||
var file_store_activity_proto_depIdxs = []int32{
|
var file_store_activity_proto_depIdxs = []int32{
|
||||||
0, // [0:0] is the sub-list for method output_type
|
0, // 0: memos.store.ActivityPayload.memo_comment:type_name -> memos.store.ActivityMemoCommentPayload
|
||||||
0, // [0:0] is the sub-list for method input_type
|
1, // [1:1] is the sub-list for method output_type
|
||||||
0, // [0:0] is the sub-list for extension type_name
|
1, // [1:1] is the sub-list for method input_type
|
||||||
0, // [0:0] is the sub-list for extension extendee
|
1, // [1:1] is the sub-list for extension type_name
|
||||||
0, // [0:0] is the sub-list for field 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_store_activity_proto_init() }
|
func init() { file_store_activity_proto_init() }
|
||||||
@ -51,18 +183,45 @@ func file_store_activity_proto_init() {
|
|||||||
if File_store_activity_proto != nil {
|
if File_store_activity_proto != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_store_activity_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*ActivityMemoCommentPayload); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_store_activity_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*ActivityPayload); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_store_activity_proto_rawDesc,
|
RawDescriptor: file_store_activity_proto_rawDesc,
|
||||||
NumEnums: 0,
|
NumEnums: 0,
|
||||||
NumMessages: 0,
|
NumMessages: 2,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
GoTypes: file_store_activity_proto_goTypes,
|
GoTypes: file_store_activity_proto_goTypes,
|
||||||
DependencyIndexes: file_store_activity_proto_depIdxs,
|
DependencyIndexes: file_store_activity_proto_depIdxs,
|
||||||
|
MessageInfos: file_store_activity_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_store_activity_proto = out.File
|
File_store_activity_proto = out.File
|
||||||
file_store_activity_proto_rawDesc = nil
|
file_store_activity_proto_rawDesc = nil
|
||||||
|
@ -20,15 +20,59 @@ const (
|
|||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type InboxMessage_Type int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
InboxMessage_TYPE_UNSPECIFIED InboxMessage_Type = 0
|
||||||
|
InboxMessage_TYPE_MEMO_COMMENT InboxMessage_Type = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for InboxMessage_Type.
|
||||||
|
var (
|
||||||
|
InboxMessage_Type_name = map[int32]string{
|
||||||
|
0: "TYPE_UNSPECIFIED",
|
||||||
|
1: "TYPE_MEMO_COMMENT",
|
||||||
|
}
|
||||||
|
InboxMessage_Type_value = map[string]int32{
|
||||||
|
"TYPE_UNSPECIFIED": 0,
|
||||||
|
"TYPE_MEMO_COMMENT": 1,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x InboxMessage_Type) Enum() *InboxMessage_Type {
|
||||||
|
p := new(InboxMessage_Type)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x InboxMessage_Type) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (InboxMessage_Type) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_store_inbox_proto_enumTypes[0].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (InboxMessage_Type) Type() protoreflect.EnumType {
|
||||||
|
return &file_store_inbox_proto_enumTypes[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x InboxMessage_Type) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use InboxMessage_Type.Descriptor instead.
|
||||||
|
func (InboxMessage_Type) EnumDescriptor() ([]byte, []int) {
|
||||||
|
return file_store_inbox_proto_rawDescGZIP(), []int{0, 0}
|
||||||
|
}
|
||||||
|
|
||||||
type InboxMessage struct {
|
type InboxMessage struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
|
Type InboxMessage_Type `protobuf:"varint,1,opt,name=type,proto3,enum=memos.store.InboxMessage_Type" json:"type,omitempty"`
|
||||||
Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
|
ActivityId *int32 `protobuf:"varint,2,opt,name=activity_id,json=activityId,proto3,oneof" json:"activity_id,omitempty"`
|
||||||
Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"`
|
|
||||||
ActivityId *int32 `protobuf:"varint,4,opt,name=activity_id,json=activityId,proto3,oneof" json:"activity_id,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *InboxMessage) Reset() {
|
func (x *InboxMessage) Reset() {
|
||||||
@ -63,25 +107,11 @@ func (*InboxMessage) Descriptor() ([]byte, []int) {
|
|||||||
return file_store_inbox_proto_rawDescGZIP(), []int{0}
|
return file_store_inbox_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *InboxMessage) GetTitle() string {
|
func (x *InboxMessage) GetType() InboxMessage_Type {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Title
|
return x.Type
|
||||||
}
|
}
|
||||||
return ""
|
return InboxMessage_TYPE_UNSPECIFIED
|
||||||
}
|
|
||||||
|
|
||||||
func (x *InboxMessage) GetContent() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Content
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *InboxMessage) GetLink() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Link
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *InboxMessage) GetActivityId() int32 {
|
func (x *InboxMessage) GetActivityId() int32 {
|
||||||
@ -96,25 +126,27 @@ var File_store_inbox_proto protoreflect.FileDescriptor
|
|||||||
var file_store_inbox_proto_rawDesc = []byte{
|
var file_store_inbox_proto_rawDesc = []byte{
|
||||||
0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x2e, 0x70, 0x72,
|
0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x2e, 0x70, 0x72,
|
||||||
0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65,
|
0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65,
|
||||||
0x22, 0x88, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
0x22, 0xad, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
||||||
0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
|
||||||
0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
|
0x1e, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e,
|
||||||
0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
|
||||||
0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
|
||||||
0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
|
0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x63,
|
||||||
0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x63,
|
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x22, 0x33, 0x0a, 0x04, 0x54,
|
||||||
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f,
|
0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
|
||||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x95, 0x01, 0x0a, 0x0f,
|
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x59, 0x50,
|
||||||
0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42,
|
0x45, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01,
|
||||||
0x0a, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x29, 0x67,
|
0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64,
|
||||||
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d,
|
0x42, 0x95, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x73,
|
||||||
0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
|
0x74, 0x6f, 0x72, 0x65, 0x42, 0x0a, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
0x65, 0x6e, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x03, 0x4d, 0x53, 0x58, 0xaa, 0x02,
|
0x50, 0x01, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75,
|
||||||
0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0xca, 0x02, 0x0b, 0x4d,
|
0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72,
|
||||||
0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x65, 0xe2, 0x02, 0x17, 0x4d, 0x65, 0x6d,
|
0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x03,
|
||||||
0x6f, 0x73, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61,
|
0x4d, 0x53, 0x58, 0xaa, 0x02, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x6f, 0x72,
|
||||||
0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74,
|
0x65, 0xca, 0x02, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x65, 0xe2,
|
||||||
0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x02, 0x17, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x47, 0x50,
|
||||||
|
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f,
|
||||||
|
0x73, 0x3a, 0x3a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -129,16 +161,19 @@ func file_store_inbox_proto_rawDescGZIP() []byte {
|
|||||||
return file_store_inbox_proto_rawDescData
|
return file_store_inbox_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var file_store_inbox_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||||
var file_store_inbox_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
var file_store_inbox_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||||
var file_store_inbox_proto_goTypes = []interface{}{
|
var file_store_inbox_proto_goTypes = []interface{}{
|
||||||
(*InboxMessage)(nil), // 0: memos.store.InboxMessage
|
(InboxMessage_Type)(0), // 0: memos.store.InboxMessage.Type
|
||||||
|
(*InboxMessage)(nil), // 1: memos.store.InboxMessage
|
||||||
}
|
}
|
||||||
var file_store_inbox_proto_depIdxs = []int32{
|
var file_store_inbox_proto_depIdxs = []int32{
|
||||||
0, // [0:0] is the sub-list for method output_type
|
0, // 0: memos.store.InboxMessage.type:type_name -> memos.store.InboxMessage.Type
|
||||||
0, // [0:0] is the sub-list for method input_type
|
1, // [1:1] is the sub-list for method output_type
|
||||||
0, // [0:0] is the sub-list for extension type_name
|
1, // [1:1] is the sub-list for method input_type
|
||||||
0, // [0:0] is the sub-list for extension extendee
|
1, // [1:1] is the sub-list for extension type_name
|
||||||
0, // [0:0] is the sub-list for field 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_store_inbox_proto_init() }
|
func init() { file_store_inbox_proto_init() }
|
||||||
@ -166,13 +201,14 @@ func file_store_inbox_proto_init() {
|
|||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_store_inbox_proto_rawDesc,
|
RawDescriptor: file_store_inbox_proto_rawDesc,
|
||||||
NumEnums: 0,
|
NumEnums: 1,
|
||||||
NumMessages: 1,
|
NumMessages: 1,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
GoTypes: file_store_inbox_proto_goTypes,
|
GoTypes: file_store_inbox_proto_goTypes,
|
||||||
DependencyIndexes: file_store_inbox_proto_depIdxs,
|
DependencyIndexes: file_store_inbox_proto_depIdxs,
|
||||||
|
EnumInfos: file_store_inbox_proto_enumTypes,
|
||||||
MessageInfos: file_store_inbox_proto_msgTypes,
|
MessageInfos: file_store_inbox_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_store_inbox_proto = out.File
|
File_store_inbox_proto = out.File
|
||||||
|
@ -3,3 +3,12 @@ syntax = "proto3";
|
|||||||
package memos.store;
|
package memos.store;
|
||||||
|
|
||||||
option go_package = "gen/store";
|
option go_package = "gen/store";
|
||||||
|
|
||||||
|
message ActivityMemoCommentPayload {
|
||||||
|
int32 memo_id = 1;
|
||||||
|
int32 related_memo_id = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ActivityPayload {
|
||||||
|
ActivityMemoCommentPayload memo_comment = 1;
|
||||||
|
}
|
||||||
|
@ -5,8 +5,10 @@ package memos.store;
|
|||||||
option go_package = "gen/store";
|
option go_package = "gen/store";
|
||||||
|
|
||||||
message InboxMessage {
|
message InboxMessage {
|
||||||
string title = 1;
|
enum Type {
|
||||||
string content = 2;
|
TYPE_UNSPECIFIED = 0;
|
||||||
string link = 3;
|
TYPE_MEMO_COMMENT = 1;
|
||||||
optional int32 activity_id = 4;
|
}
|
||||||
|
Type type = 1;
|
||||||
|
optional int32 activity_id = 2;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package server
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
@ -112,10 +111,6 @@ func NewServer(ctx context.Context, profile *profile.Profile, store *store.Store
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) Start(ctx context.Context) error {
|
func (s *Server) Start(ctx context.Context) error {
|
||||||
if err := s.createServerStartActivity(ctx); err != nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
|
|
||||||
go s.telegramBot.Start(ctx)
|
go s.telegramBot.Start(ctx)
|
||||||
go s.backupRunner.Run(ctx)
|
go s.backupRunner.Run(ctx)
|
||||||
|
|
||||||
@ -182,26 +177,6 @@ func (s *Server) getSystemSecretSessionName(ctx context.Context) (string, error)
|
|||||||
return secretSessionNameValue.Value, nil
|
return secretSessionNameValue.Value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) createServerStartActivity(ctx context.Context) error {
|
|
||||||
payload := apiv1.ActivityServerStartPayload{
|
|
||||||
ServerID: s.ID,
|
|
||||||
Profile: s.Profile,
|
|
||||||
}
|
|
||||||
payloadBytes, err := json.Marshal(payload)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to marshal activity payload")
|
|
||||||
}
|
|
||||||
activity, err := s.Store.CreateActivity(ctx, &store.Activity{
|
|
||||||
Type: apiv1.ActivityServerStart.String(),
|
|
||||||
Level: apiv1.ActivityInfo.String(),
|
|
||||||
Payload: string(payloadBytes),
|
|
||||||
})
|
|
||||||
if err != nil || activity == nil {
|
|
||||||
return errors.Wrap(err, "failed to create activity")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func grpcRequestSkipper(c echo.Context) bool {
|
func grpcRequestSkipper(c echo.Context) bool {
|
||||||
return strings.HasPrefix(c.Request().URL.Path, "/memos.api.v2.")
|
return strings.HasPrefix(c.Request().URL.Path, "/memos.api.v2.")
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { createChannel, createClientFactory, FetchTransport } from "nice-grpc-web";
|
import { createChannel, createClientFactory, FetchTransport } from "nice-grpc-web";
|
||||||
|
import { InboxServiceDefinition } from "./types/proto/api/v2/inbox_service";
|
||||||
import { MemoServiceDefinition } from "./types/proto/api/v2/memo_service";
|
import { MemoServiceDefinition } from "./types/proto/api/v2/memo_service";
|
||||||
import { ResourceServiceDefinition } from "./types/proto/api/v2/resource_service";
|
import { ResourceServiceDefinition } from "./types/proto/api/v2/resource_service";
|
||||||
import { SystemServiceDefinition } from "./types/proto/api/v2/system_service";
|
import { SystemServiceDefinition } from "./types/proto/api/v2/system_service";
|
||||||
@ -23,3 +24,5 @@ export const resourceServiceClient = clientFactory.create(ResourceServiceDefinit
|
|||||||
export const systemServiceClient = clientFactory.create(SystemServiceDefinition, channel);
|
export const systemServiceClient = clientFactory.create(SystemServiceDefinition, channel);
|
||||||
|
|
||||||
export const tagServiceClient = clientFactory.create(TagServiceDefinition, channel);
|
export const tagServiceClient = clientFactory.create(TagServiceDefinition, channel);
|
||||||
|
|
||||||
|
export const inboxServiceClient = clientFactory.create(InboxServiceDefinition, channel);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user