Documentation
¶
Index ¶
- Constants
- Variables
- func GetImage(c echo.Context) error
- func GetWebsiteMetadata(c echo.Context) error
- func JWTMiddleware(server *APIV1Service, next echo.HandlerFunc, secret string) echo.HandlerFunc
- func SaveResourceBlob(ctx context.Context, s *store.Store, create *store.Resource, r io.Reader) error
- type APIV1Service
- func (s *APIV1Service) BindMemoResource(c echo.Context) error
- func (s *APIV1Service) CreateIdentityProvider(c echo.Context) error
- func (s *APIV1Service) CreateMemo(c echo.Context) error
- func (s *APIV1Service) CreateMemoOrganizer(c echo.Context) error
- func (s *APIV1Service) CreateMemoRelation(c echo.Context) error
- func (s *APIV1Service) CreateResource(c echo.Context) error
- func (s *APIV1Service) CreateStorage(c echo.Context) error
- func (s *APIV1Service) CreateSystemSetting(c echo.Context) error
- func (s *APIV1Service) CreateTag(c echo.Context) error
- func (s *APIV1Service) CreateUser(c echo.Context) error
- func (s *APIV1Service) DeleteIdentityProvider(c echo.Context) error
- func (s *APIV1Service) DeleteMemo(c echo.Context) error
- func (s *APIV1Service) DeleteMemoRelation(c echo.Context) error
- func (s *APIV1Service) DeleteResource(c echo.Context) error
- func (s *APIV1Service) DeleteStorage(c echo.Context) error
- func (s *APIV1Service) DeleteTag(c echo.Context) error
- func (s *APIV1Service) DeleteUser(c echo.Context) error
- func (s *APIV1Service) ExecVacuum(c echo.Context) error
- func (s *APIV1Service) GetAllMemos(c echo.Context) error
- func (s *APIV1Service) GetCurrentUser(c echo.Context) error
- func (s *APIV1Service) GetExploreRSS(c echo.Context) error
- func (s *APIV1Service) GetIdentityProvider(c echo.Context) error
- func (s *APIV1Service) GetIdentityProviderList(c echo.Context) error
- func (s *APIV1Service) GetMemo(c echo.Context) error
- func (s *APIV1Service) GetMemoList(c echo.Context) error
- func (s *APIV1Service) GetMemoRelationList(c echo.Context) error
- func (s *APIV1Service) GetMemoResourceList(c echo.Context) error
- func (s *APIV1Service) GetMemoStats(c echo.Context) error
- func (s *APIV1Service) GetResourceList(c echo.Context) error
- func (s *APIV1Service) GetStorageList(c echo.Context) error
- func (s *APIV1Service) GetSystemSettingList(c echo.Context) error
- func (s *APIV1Service) GetSystemStatus(c echo.Context) error
- func (s *APIV1Service) GetTagList(c echo.Context) error
- func (s *APIV1Service) GetTagSuggestion(c echo.Context) error
- func (s *APIV1Service) GetUserByID(c echo.Context) error
- func (s *APIV1Service) GetUserByUsername(c echo.Context) error
- func (s *APIV1Service) GetUserList(c echo.Context) error
- func (s *APIV1Service) GetUserRSS(c echo.Context) error
- func (*APIV1Service) PingSystem(c echo.Context) error
- func (s *APIV1Service) Register(rootGroup *echo.Group)
- func (s *APIV1Service) SignIn(c echo.Context) error
- func (s *APIV1Service) SignInSSO(c echo.Context) error
- func (s *APIV1Service) SignOut(c echo.Context) error
- func (s *APIV1Service) SignUp(c echo.Context) error
- func (s *APIV1Service) UnbindMemoResource(c echo.Context) error
- func (s *APIV1Service) UpdateIdentityProvider(c echo.Context) error
- func (s *APIV1Service) UpdateMemo(c echo.Context) error
- func (s *APIV1Service) UpdateResource(c echo.Context) error
- func (s *APIV1Service) UpdateStorage(c echo.Context) error
- func (s *APIV1Service) UpdateUser(c echo.Context) error
- func (s *APIV1Service) UploadResource(c echo.Context) error
- func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store.User, accessToken string) error
- func (s *APIV1Service) UpsertUserSetting(c echo.Context) error
- type Activity
- type ActivityCreate
- type ActivityLevel
- type ActivityMemoCreatePayload
- type ActivityResourceCreatePayload
- type ActivityServerStartPayload
- type ActivityTagCreatePayload
- type ActivityType
- type ActivityUserAuthSignInPayload
- type ActivityUserAuthSignUpPayload
- type ActivityUserCreatePayload
- type CreateIdentityProviderRequest
- type CreateMemoRequest
- type CreateResourceRequest
- type CreateStorageRequest
- type CreateUserRequest
- type CustomizedProfile
- type DeleteTagRequest
- type FieldMapping
- type FindMemoRequest
- type FindResourceRequest
- type IdentityProvider
- type IdentityProviderConfig
- type IdentityProviderOAuth2Config
- type IdentityProviderType
- type Memo
- type MemoOrganizer
- type MemoRelation
- type MemoRelationType
- type MemoResource
- type MemoResourceDelete
- type MemoResourceFind
- type PatchMemoRequest
- type Resource
- type Role
- type RowStatus
- type SSOSignIn
- type SignIn
- type SignUp
- type Storage
- type StorageConfig
- type StorageS3Config
- type StorageType
- type SystemSetting
- type SystemSettingName
- type SystemStatus
- type Tag
- type UpdateIdentityProviderRequest
- type UpdateResourceRequest
- type UpdateStorageRequest
- type UpdateUserRequest
- type UpsertMemoOrganizerRequest
- type UpsertMemoRelationRequest
- type UpsertMemoResourceRequest
- type UpsertSystemSettingRequest
- type UpsertTagRequest
- type UpsertUserSettingRequest
- type User
- type UserSetting
- type UserSettingKey
- type Visibility
Constants ¶
const ( // LocalStorage means the storage service is local file system. // Default storage service is local file system. LocalStorage int32 = -1 // DatabaseStorage means the storage service is database. DatabaseStorage int32 = 0 )
const (
MebiByte = 1024 * 1024
)
const UnknownID = -1
UnknownID is the ID for unknowns.
Variables ¶
var ( UserSettingLocaleValue = []string{ "de", "en", "es", "fr", "hi", "hr", "it", "ja", "ko", "nl", "pl", "pt-BR", "ru", "sl", "sv", "tr", "uk", "vi", "zh-Hans", "zh-Hant", } UserSettingAppearanceValue = []string{"system", "light", "dark"} UserSettingMemoVisibilityValue = []Visibility{Private, Protected, Public} )
var SwaggerInfo = &swag.Spec{ Version: "1.0", Host: "", BasePath: "/", Schemes: []string{}, Title: "memos API", Description: "A privacy-first, lightweight note-taking service.", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", RightDelim: "}}", }
SwaggerInfo holds exported Swagger Info so clients can modify it
Functions ¶
func GetImage ¶ added in v0.14.4
GetImage godoc
@Summary Get GetImage from URL
@Tags get
@Produce GetImage/*
@Param url query string true "Image url"
@Success 200 {object} nil "Image"
@Failure 400 {object} nil "Missing GetImage url | Wrong url | Failed to get GetImage url: %s"
@Failure 500 {object} nil "Failed to write GetImage blob"
@Router /o/get/GetImage [GET]
func GetWebsiteMetadata ¶ added in v0.14.4
GetWebsiteMetadata godoc
@Summary Get website metadata
@Tags get
@Produce json
@Param url query string true "Website URL"
@Success 200 {object} getter.HTMLMeta "Extracted metadata"
@Failure 400 {object} nil "Missing website url | Wrong url"
@Failure 406 {object} nil "Failed to get website meta with url: %s"
@Router /o/get/GetWebsiteMetadata [GET]
func JWTMiddleware ¶
func JWTMiddleware(server *APIV1Service, next echo.HandlerFunc, secret string) echo.HandlerFunc
JWTMiddleware validates the access token.
func SaveResourceBlob ¶ added in v0.14.0
func SaveResourceBlob(ctx context.Context, s *store.Store, create *store.Resource, r io.Reader) error
SaveResourceBlob save the blob of resource based on the storage config
Depend on the storage config, some fields of *store.ResourceCreate will be changed: 1. *DatabaseStorage*: `create.Blob`. 2. *LocalStorage*: `create.InternalPath`. 3. Others( external service): `create.ExternalLink`.
Types ¶
type APIV1Service ¶
type APIV1Service struct {
Secret string
Profile *profile.Profile
Store *store.Store
// contains filtered or unexported fields
}
func NewAPIV1Service ¶
func NewAPIV1Service(secret string, profile *profile.Profile, store *store.Store, telegramBot *telegram.Bot) *APIV1Service
@title memos API @version 1.0 @description A privacy-first, lightweight note-taking service.
@contact.name API Support @contact.url https://github.com/orgs/usememos/discussions
@license.name MIT License @license.url https://github.com/usememos/memos/blob/main/LICENSE
@BasePath /
@externalDocs.url https://usememos.com/ @externalDocs.description Find out more about Memos.
func (*APIV1Service) BindMemoResource ¶ added in v0.14.4
func (s *APIV1Service) BindMemoResource(c echo.Context) error
BindMemoResource godoc
@Summary Bind resource to memo
@Tags memo-resource
@Accept json
@Produce json
@Param memoId path int true "ID of memo to bind resource to"
@Param body body UpsertMemoResourceRequest true "Memo resource request object"
@Success 200 {boolean} true "Memo resource binded"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted post memo resource request | Resource not found"
@Failure 401 {object} nil "Missing user in session | Unauthorized to bind this resource"
@Failure 500 {object} nil "Failed to fetch resource | Failed to upsert memo resource"
@Router /api/v1/memo/{memoId}/resource [POST]
NOTES: - Passing 0 to updatedTs will set it to 0 in the database, which is probably unwanted.
func (*APIV1Service) CreateIdentityProvider ¶ added in v0.14.4
func (s *APIV1Service) CreateIdentityProvider(c echo.Context) error
CreateIdentityProvider godoc
@Summary Create Identity Provider
@Tags idp
@Accept json
@Produce json
@Param body body CreateIdentityProviderRequest true "Identity provider information"
@Success 200 {object} store.IdentityProvider "Identity provider information"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 400 {object} nil "Malformatted post identity provider request"
@Failure 500 {object} nil "Failed to find user | Failed to create identity provider"
@Router /api/v1/idp [POST]
func (*APIV1Service) CreateMemo ¶ added in v0.14.4
func (s *APIV1Service) CreateMemo(c echo.Context) error
CreateMemo godoc
@Summary Create a memo
@Description Visibility can be PUBLIC, PROTECTED or PRIVATE
@Description *You should omit fields to use their default values
@Tags memo
@Accept json
@Produce json
@Param body body CreateMemoRequest true "Request object."
@Success 200 {object} store.Memo "Stored memo"
@Failure 400 {object} nil "Malformatted post memo request | Content size overflow, up to 1MB"
@Failure 401 {object} nil "Missing user in session"
@Failure 404 {object} nil "User not found | Memo not found: %d"
@Failure 500 {object} nil "Failed to find user setting | Failed to unmarshal user setting value | Failed to find system setting | Failed to unmarshal system setting | Failed to find user | Failed to create memo | Failed to create activity | Failed to upsert memo resource | Failed to upsert memo relation | Failed to compose memo | Failed to compose memo response"
@Router /api/v1/memo [POST]
NOTES: - It's currently possible to create phantom resources and relations. Phantom relations will trigger backend 404's when fetching memo.
func (*APIV1Service) CreateMemoOrganizer ¶ added in v0.14.4
func (s *APIV1Service) CreateMemoOrganizer(c echo.Context) error
CreateMemoOrganizer godoc
@Summary Organize memo (pin/unpin)
@Tags memo-organizer
@Accept json
@Produce json
@Param memoId path int true "ID of memo to organize"
@Param body body UpsertMemoOrganizerRequest true "Memo organizer object"
@Success 200 {object} store.Memo "Memo information"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted post memo organizer request"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 404 {object} nil "Memo not found: %v"
@Failure 500 {object} nil "Failed to find memo | Failed to upsert memo organizer | Failed to find memo by ID: %v | Failed to compose memo response"
@Router /api/v1/memo/{memoId}/organizer [POST]
func (*APIV1Service) CreateMemoRelation ¶ added in v0.14.4
func (s *APIV1Service) CreateMemoRelation(c echo.Context) error
CreateMemoRelation godoc
@Summary Create Memo Relation
@Description Create a relation between two memos
@Tags memo-relation
@Accept json
@Produce json
@Param memoId path int true "ID of memo to relate"
@Param body body UpsertMemoRelationRequest true "Memo relation object"
@Success 200 {object} store.MemoRelation "Memo relation information"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted post memo relation request"
@Failure 500 {object} nil "Failed to upsert memo relation"
@Router /api/v1/memo/{memoId}/relation [POST]
NOTES: - Currently not secured - It's possible to create relations to memos that doesn't exist, which will trigger 404 errors when the frontend tries to load them. - It's possible to create multiple relations, though the interface only shows first.
func (*APIV1Service) CreateResource ¶ added in v0.14.4
func (s *APIV1Service) CreateResource(c echo.Context) error
CreateResource godoc
@Summary Create resource
@Tags resource
@Accept json
@Produce json
@Param body body CreateResourceRequest true "Request object."
@Success 200 {object} store.Resource "Created resource"
@Failure 400 {object} nil "Malformatted post resource request | Invalid external link | Invalid external link scheme | Failed to request %s | Failed to read %s | Failed to read mime from %s"
@Failure 401 {object} nil "Missing user in session"
@Failure 500 {object} nil "Failed to save resource | Failed to create resource | Failed to create activity"
@Router /api/v1/resource [POST]
func (*APIV1Service) CreateStorage ¶ added in v0.14.4
func (s *APIV1Service) CreateStorage(c echo.Context) error
CreateStorage godoc
@Summary Create storage
@Tags storage
@Accept json
@Produce json
@Param body body CreateStorageRequest true "Request object."
@Success 200 {object} store.Storage "Created storage"
@Failure 400 {object} nil "Malformatted post storage request"
@Failure 401 {object} nil "Missing user in session"
@Failure 500 {object} nil "Failed to find user | Failed to create storage | Failed to convert storage"
@Router /api/v1/storage [POST]
func (*APIV1Service) CreateSystemSetting ¶ added in v0.14.4
func (s *APIV1Service) CreateSystemSetting(c echo.Context) error
CreateSystemSetting godoc
@Summary Create system setting
@Tags system-setting
@Accept json
@Produce json
@Param body body UpsertSystemSettingRequest true "Request object."
@Success 200 {object} store.SystemSetting "Created system setting"
@Failure 400 {object} nil "Malformatted post system setting request | invalid system setting"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 403 {object} nil "Cannot disable passwords if no SSO identity provider is configured."
@Failure 500 {object} nil "Failed to find user | Failed to upsert system setting"
@Router /api/v1/system/setting [POST]
func (*APIV1Service) CreateTag ¶ added in v0.14.4
func (s *APIV1Service) CreateTag(c echo.Context) error
CreateTag godoc
@Summary Create a tag
@Tags tag
@Accept json
@Produce json
@Param body body UpsertTagRequest true "Request object."
@Success 200 {object} string "Created tag name"
@Failure 400 {object} nil "Malformatted post tag request | Tag name shouldn't be empty"
@Failure 401 {object} nil "Missing user in session"
@Failure 500 {object} nil "Failed to upsert tag | Failed to create activity"
@Router /api/v1/tag [POST]
func (*APIV1Service) CreateUser ¶ added in v0.14.4
func (s *APIV1Service) CreateUser(c echo.Context) error
CreateUser godoc
@Summary Create a user
@Tags user
@Accept json
@Produce json
@Param body body CreateUserRequest true "Request object"
@Success 200 {object} store.User "Created user"
@Failure 400 {object} nil "Malformatted post user request | Invalid user create format"
@Failure 401 {object} nil "Missing auth session | Unauthorized to create user"
@Failure 403 {object} nil "Could not create host user"
@Failure 500 {object} nil "Failed to find user by id | Failed to generate password hash | Failed to create user | Failed to create activity"
@Router /api/v1/user [POST]
func (*APIV1Service) DeleteIdentityProvider ¶ added in v0.14.4
func (s *APIV1Service) DeleteIdentityProvider(c echo.Context) error
DeleteIdentityProvider godoc
@Summary Delete an identity provider by ID
@Tags idp
@Accept json
@Produce json
@Param idpId path int true "Identity Provider ID"
@Success 200 {boolean} true "Identity Provider deleted"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted patch identity provider request"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find user | Failed to patch identity provider"
@Router /api/v1/idp/{idpId} [DELETE]
func (*APIV1Service) DeleteMemo ¶ added in v0.14.4
func (s *APIV1Service) DeleteMemo(c echo.Context) error
DeleteMemo godoc
@Summary Delete memo by ID
@Tags memo
@Produce json
@Param memoId path int true "Memo ID to delete"
@Success 200 {boolean} true "Memo deleted"
@Failure 400 {object} nil "ID is not a number: %s"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 404 {object} nil "Memo not found: %d"
@Failure 500 {object} nil "Failed to find memo | Failed to delete memo ID: %v"
@Router /api/v1/memo/{memoId} [DELETE]
func (*APIV1Service) DeleteMemoRelation ¶ added in v0.14.4
func (s *APIV1Service) DeleteMemoRelation(c echo.Context) error
DeleteMemoRelation godoc
@Summary Delete a Memo Relation
@Description Removes a relation between two memos
@Tags memo-relation
@Accept json
@Produce json
@Param memoId path int true "ID of memo to find relations"
@Param relatedMemoId path int true "ID of memo to remove relation to"
@Param relationType path MemoRelationType true "Type of relation to remove"
@Success 200 {boolean} true "Memo relation deleted"
@Failure 400 {object} nil "Memo ID is not a number: %s | Related memo ID is not a number: %s"
@Failure 500 {object} nil "Failed to delete memo relation"
@Router /api/v1/memo/{memoId}/relation/{relatedMemoId}/type/{relationType} [DELETE]
NOTES: - Currently not secured. - Will always return true, even if the relation doesn't exist.
func (*APIV1Service) DeleteResource ¶ added in v0.14.4
func (s *APIV1Service) DeleteResource(c echo.Context) error
DeleteResource godoc
@Summary Delete a resource
@Tags resource
@Produce json
@Param resourceId path int true "Resource ID"
@Success 200 {boolean} true "Resource deleted"
@Failure 400 {object} nil "ID is not a number: %s"
@Failure 401 {object} nil "Missing user in session"
@Failure 404 {object} nil "Resource not found: %d"
@Failure 500 {object} nil "Failed to find resource | Failed to delete resource"
@Router /api/v1/resource/{resourceId} [DELETE]
func (*APIV1Service) DeleteStorage ¶ added in v0.14.4
func (s *APIV1Service) DeleteStorage(c echo.Context) error
DeleteStorage godoc
@Summary Delete a storage
@Tags storage
@Produce json
@Param storageId path int true "Storage ID"
@Success 200 {boolean} true "Storage deleted"
@Failure 400 {object} nil "ID is not a number: %s | Storage service %d is using"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find user | Failed to find storage | Failed to unmarshal storage service id | Failed to delete storage"
@Router /api/v1/storage/{storageId} [DELETE]
NOTES: - error message "Storage service %d is using" probably should be "Storage service %d is in use".
func (*APIV1Service) DeleteTag ¶ added in v0.14.4
func (s *APIV1Service) DeleteTag(c echo.Context) error
DeleteTag godoc
@Summary Delete a tag
@Tags tag
@Accept json
@Produce json
@Param body body DeleteTagRequest true "Request object."
@Success 200 {boolean} true "Tag deleted"
@Failure 400 {object} nil "Malformatted post tag request | Tag name shouldn't be empty"
@Failure 401 {object} nil "Missing user in session"
@Failure 500 {object} nil "Failed to delete tag name: %v"
@Router /api/v1/tag/delete [POST]
func (*APIV1Service) DeleteUser ¶ added in v0.14.4
func (s *APIV1Service) DeleteUser(c echo.Context) error
DeleteUser godoc
@Summary Delete a user
@Tags user
@Produce json
@Param id path string true "User ID"
@Success 200 {boolean} true "User deleted"
@Failure 400 {object} nil "ID is not a number: %s | Current session user not found with ID: %d"
@Failure 401 {object} nil "Missing user in session"
@Failure 403 {object} nil "Unauthorized to delete user"
@Failure 500 {object} nil "Failed to find user | Failed to delete user"
@Router /api/v1/user/{id} [DELETE]
func (*APIV1Service) ExecVacuum ¶ added in v0.14.4
func (s *APIV1Service) ExecVacuum(c echo.Context) error
ExecVacuum godoc
@Summary Vacuum the database
@Tags system
@Produce json
@Success 200 {boolean} true "Database vacuumed"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find user | Failed to ExecVacuum database"
@Router /api/v1/system/vacuum [POST]
func (*APIV1Service) GetAllMemos ¶ added in v0.14.4
func (s *APIV1Service) GetAllMemos(c echo.Context) error
GetAllMemos godoc
@Summary Get a list of public memos matching optional filters
@Description This should also list protected memos if the user is logged in
@Description Authentication is optional
@Tags memo
@Produce json
@Param limit query int false "Limit"
@Param offset query int false "Offset"
@Success 200 {object} []store.Memo "Memo list"
@Failure 500 {object} nil "Failed to get memo display with updated ts setting value | Failed to fetch all memo list | Failed to compose memo response"
@Router /api/v1/memo/all [GET]
NOTES:
- creatorUsername is listed at ./web/src/helpers/api.ts:82, but it's not present here
func (*APIV1Service) GetCurrentUser ¶ added in v0.14.4
func (s *APIV1Service) GetCurrentUser(c echo.Context) error
GetCurrentUser godoc
@Summary Get current user
@Tags user
@Produce json
@Success 200 {object} store.User "Current user"
@Failure 401 {object} nil "Missing auth session"
@Failure 500 {object} nil "Failed to find user | Failed to find userSettingList"
@Router /api/v1/user/me [GET]
func (*APIV1Service) GetExploreRSS ¶ added in v0.14.4
func (s *APIV1Service) GetExploreRSS(c echo.Context) error
GetExploreRSS godoc
@Summary Get RSS
@Tags rss
@Produce xml
@Success 200 {object} nil "RSS"
@Failure 500 {object} nil "Failed to get system customized profile | Failed to find memo list | Failed to generate rss"
@Router /explore/rss.xml [GET]
func (*APIV1Service) GetIdentityProvider ¶ added in v0.14.4
func (s *APIV1Service) GetIdentityProvider(c echo.Context) error
GetIdentityProvider godoc
@Summary Get an identity provider by ID
@Tags idp
@Accept json
@Produce json
@Param idpId path int true "Identity provider ID"
@Success 200 {object} store.IdentityProvider "Requested identity provider"
@Failure 400 {object} nil "ID is not a number: %s"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 404 {object} nil "Identity provider not found"
@Failure 500 {object} nil "Failed to find identity provider list | Failed to find user"
@Router /api/v1/idp/{idpId} [GET]
func (*APIV1Service) GetIdentityProviderList ¶ added in v0.14.4
func (s *APIV1Service) GetIdentityProviderList(c echo.Context) error
GetIdentityProviderList godoc
@Summary Get a list of identity providers
@Description *clientSecret is only available for host user
@Tags idp
@Produce json
@Success 200 {object} []IdentityProvider "List of available identity providers"
@Failure 500 {object} nil "Failed to find identity provider list | Failed to find user"
@Router /api/v1/idp [GET]
func (*APIV1Service) GetMemo ¶ added in v0.14.4
func (s *APIV1Service) GetMemo(c echo.Context) error
GetMemo godoc
@Summary Get memo by ID
@Tags memo
@Produce json
@Param memoId path int true "Memo ID"
@Success 200 {object} []store.Memo "Memo list"
@Failure 400 {object} nil "ID is not a number: %s"
@Failure 401 {object} nil "Missing user in session"
@Failure 403 {object} nil "this memo is private only | this memo is protected, missing user in session
@Failure 404 {object} nil "Memo not found: %d"
@Failure 500 {object} nil "Failed to find memo by ID: %v | Failed to compose memo response"
@Router /api/v1/memo/{memoId} [GET]
func (*APIV1Service) GetMemoList ¶ added in v0.14.4
func (s *APIV1Service) GetMemoList(c echo.Context) error
GetMemoList godoc
@Summary Get a list of memos matching optional filters
@Tags memo
@Produce json
@Param creatorId query int false "Creator ID"
@Param creatorUsername query string false "Creator username"
@Param rowStatus query store.RowStatus false "Row status"
@Param pinned query bool false "Pinned"
@Param tag query string false "Search for tag. Do not append #"
@Param content query string false "Search for content"
@Param limit query int false "Limit"
@Param offset query int false "Offset"
@Success 200 {object} []store.Memo "Memo list"
@Failure 400 {object} nil "Missing user to find memo"
@Failure 500 {object} nil "Failed to get memo display with updated ts setting value | Failed to fetch memo list | Failed to compose memo response"
@Router /api/v1/memo [GET]
func (*APIV1Service) GetMemoRelationList ¶ added in v0.14.4
func (s *APIV1Service) GetMemoRelationList(c echo.Context) error
GetMemoRelationList godoc
@Summary Get a list of Memo Relations
@Tags memo-relation
@Accept json
@Produce json
@Param memoId path int true "ID of memo to find relations"
@Success 200 {object} []store.MemoRelation "Memo relation information list"
@Failure 400 {object} nil "ID is not a number: %s"
@Failure 500 {object} nil "Failed to list memo relations"
@Router /api/v1/memo/{memoId}/relation [GET]
func (*APIV1Service) GetMemoResourceList ¶ added in v0.14.4
func (s *APIV1Service) GetMemoResourceList(c echo.Context) error
GetMemoResourceList godoc
@Summary Get resource list of a memo
@Tags memo-resource
@Accept json
@Produce json
@Param memoId path int true "ID of memo to fetch resource list from"
@Success 200 {object} []Resource "Memo resource list"
@Failure 400 {object} nil "ID is not a number: %s"
@Failure 500 {object} nil "Failed to fetch resource list"
@Router /api/v1/memo/{memoId}/resource [GET]
func (*APIV1Service) GetMemoStats ¶ added in v0.14.4
func (s *APIV1Service) GetMemoStats(c echo.Context) error
GetMemoStats godoc
@Summary Get memo stats by creator ID or username
@Description Used to generate the heatmap
@Tags memo
@Produce json
@Param creatorId query int false "Creator ID"
@Param creatorUsername query string false "Creator username"
@Success 200 {object} []int "Memo createdTs list"
@Failure 400 {object} nil "Missing user id to find memo"
@Failure 500 {object} nil "Failed to get memo display with updated ts setting value | Failed to find memo list | Failed to compose memo response"
@Router /api/v1/memo/stats [GET]
func (*APIV1Service) GetResourceList ¶ added in v0.14.4
func (s *APIV1Service) GetResourceList(c echo.Context) error
GetResourceList godoc
@Summary Get a list of resources
@Tags resource
@Produce json
@Param limit query int false "Limit"
@Param offset query int false "Offset"
@Success 200 {object} []store.Resource "Resource list"
@Failure 401 {object} nil "Missing user in session"
@Failure 500 {object} nil "Failed to fetch resource list"
@Router /api/v1/resource [GET]
func (*APIV1Service) GetStorageList ¶ added in v0.14.4
func (s *APIV1Service) GetStorageList(c echo.Context) error
GetStorageList godoc
@Summary Get a list of storages
@Tags storage
@Produce json
@Success 200 {object} []store.Storage "List of storages"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find user | Failed to convert storage"
@Router /api/v1/storage [GET]
func (*APIV1Service) GetSystemSettingList ¶ added in v0.14.4
func (s *APIV1Service) GetSystemSettingList(c echo.Context) error
GetSystemSettingList godoc
@Summary Get a list of system settings
@Tags system-setting
@Produce json
@Success 200 {object} []SystemSetting "System setting list"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find user | Failed to find system setting list"
@Router /api/v1/system/setting [GET]
func (*APIV1Service) GetSystemStatus ¶ added in v0.14.4
func (s *APIV1Service) GetSystemStatus(c echo.Context) error
GetSystemStatus godoc
@Summary Get system GetSystemStatus
@Tags system
@Produce json
@Success 200 {object} SystemStatus "System GetSystemStatus"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find host user | Failed to find system setting list | Failed to unmarshal system setting customized profile value"
@Router /api/v1/status [GET]
func (*APIV1Service) GetTagList ¶ added in v0.14.4
func (s *APIV1Service) GetTagList(c echo.Context) error
GetTagList godoc
@Summary Get a list of tags
@Tags tag
@Produce json
@Success 200 {object} []string "Tag list"
@Failure 400 {object} nil "Missing user id to find tag"
@Failure 500 {object} nil "Failed to find tag list"
@Router /api/v1/tag [GET]
func (*APIV1Service) GetTagSuggestion ¶ added in v0.14.4
func (s *APIV1Service) GetTagSuggestion(c echo.Context) error
GetTagSuggestion godoc
@Summary Get a list of tags suggested from other memos contents
@Tags tag
@Produce json
@Success 200 {object} []string "Tag list"
@Failure 400 {object} nil "Missing user session"
@Failure 500 {object} nil "Failed to find memo list | Failed to find tag list"
@Router /api/v1/tag/suggestion [GET]
func (*APIV1Service) GetUserByID ¶ added in v0.14.4
func (s *APIV1Service) GetUserByID(c echo.Context) error
GetUserByID godoc
@Summary Get user by id
@Tags user
@Produce json
@Param id path int true "User ID"
@Success 200 {object} store.User "Requested user"
@Failure 400 {object} nil "Malformatted user id"
@Failure 404 {object} nil "User not found"
@Failure 500 {object} nil "Failed to find user"
@Router /api/v1/user/{id} [GET]
func (*APIV1Service) GetUserByUsername ¶ added in v0.14.4
func (s *APIV1Service) GetUserByUsername(c echo.Context) error
GetUserByUsername godoc
@Summary Get user by username
@Tags user
@Produce json
@Param username path string true "Username"
@Success 200 {object} store.User "Requested user"
@Failure 404 {object} nil "User not found"
@Failure 500 {object} nil "Failed to find user"
@Router /api/v1/user/name/{username} [GET]
func (*APIV1Service) GetUserList ¶ added in v0.14.4
func (s *APIV1Service) GetUserList(c echo.Context) error
GetUserList godoc
@Summary Get a list of users
@Tags user
@Produce json
@Success 200 {object} []store.User "User list"
@Failure 500 {object} nil "Failed to fetch user list"
@Router /api/v1/user [GET]
func (*APIV1Service) GetUserRSS ¶ added in v0.14.4
func (s *APIV1Service) GetUserRSS(c echo.Context) error
GetUserRSS godoc
@Summary Get RSS for a user
@Tags rss
@Produce xml
@Param id path int true "User ID"
@Success 200 {object} nil "RSS"
@Failure 400 {object} nil "User id is not a number"
@Failure 500 {object} nil "Failed to get system customized profile | Failed to find memo list | Failed to generate rss"
@Router /u/{id}/rss.xml [GET]
func (*APIV1Service) PingSystem ¶ added in v0.14.4
func (*APIV1Service) PingSystem(c echo.Context) error
PingSystem godoc
@Summary Ping the system
@Tags system
@Produce json
@Success 200 {boolean} true "If succeed to ping the system"
@Router /api/v1/ping [GET]
func (*APIV1Service) Register ¶
func (s *APIV1Service) Register(rootGroup *echo.Group)
func (*APIV1Service) SignIn ¶ added in v0.14.4
func (s *APIV1Service) SignIn(c echo.Context) error
SignIn godoc
@Summary Sign-in to memos.
@Tags auth
@Accept json
@Produce json
@Param body body SignIn true "Sign-in object"
@Success 200 {object} store.User "User information"
@Failure 400 {object} nil "Malformatted signin request"
@Failure 401 {object} nil "Password login is deactivated | Incorrect login credentials, please try again"
@Failure 403 {object} nil "User has been archived with username %s"
@Failure 500 {object} nil "Failed to find system setting | Failed to unmarshal system setting | Incorrect login credentials, please try again | Failed to generate tokens | Failed to create activity"
@Router /api/v1/auth/signin [POST]
func (*APIV1Service) SignInSSO ¶ added in v0.14.4
func (s *APIV1Service) SignInSSO(c echo.Context) error
SignInSSO godoc
@Summary Sign-in to memos using SSO.
@Tags auth
@Accept json
@Produce json
@Param body body SSOSignIn true "SSO sign-in object"
@Success 200 {object} store.User "User information"
@Failure 400 {object} nil "Malformatted signin request"
@Failure 401 {object} nil "Access denied, identifier does not match the filter."
@Failure 403 {object} nil "User has been archived with username {username}"
@Failure 404 {object} nil "Identity provider not found"
@Failure 500 {object} nil "Failed to find identity provider | Failed to create identity provider instance | Failed to exchange token | Failed to get user info | Failed to compile identifier filter | Incorrect login credentials, please try again | Failed to generate random password | Failed to generate password hash | Failed to create user | Failed to generate tokens | Failed to create activity"
@Router /api/v1/auth/signin/sso [POST]
func (*APIV1Service) SignOut ¶ added in v0.14.4
func (s *APIV1Service) SignOut(c echo.Context) error
SignOut godoc
@Summary Sign-out from memos.
@Tags auth
@Produce json
@Success 200 {boolean} true "Sign-out success"
@Router /api/v1/auth/signout [POST]
func (*APIV1Service) SignUp ¶ added in v0.14.4
func (s *APIV1Service) SignUp(c echo.Context) error
SignUp godoc
@Summary Sign-up to memos.
@Tags auth
@Accept json
@Produce json
@Param body body SignUp true "Sign-up object"
@Success 200 {object} store.User "User information"
@Failure 400 {object} nil "Malformatted signup request | Failed to find users"
@Failure 401 {object} nil "signup is disabled"
@Failure 403 {object} nil "Forbidden"
@Failure 404 {object} nil "Not found"
@Failure 500 {object} nil "Failed to find system setting | Failed to unmarshal system setting allow signup | Failed to generate password hash | Failed to create user | Failed to generate tokens | Failed to create activity"
@Router /api/v1/auth/signup [POST]
func (*APIV1Service) UnbindMemoResource ¶ added in v0.14.4
func (s *APIV1Service) UnbindMemoResource(c echo.Context) error
UnbindMemoResource godoc
@Summary Unbind resource from memo
@Tags memo-resource
@Accept json
@Produce json
@Param memoId path int true "ID of memo to unbind resource from"
@Param resourceId path int true "ID of resource to unbind from memo"
@Success 200 {boolean} true "Memo resource unbinded. *200 is returned even if the reference doesn't exists "
@Failure 400 {object} nil "Memo ID is not a number: %s | Resource ID is not a number: %s | Memo not found"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find memo | Failed to fetch resource list"
@Router /api/v1/memo/{memoId}/resource/{resourceId} [DELETE]
func (*APIV1Service) UpdateIdentityProvider ¶ added in v0.14.4
func (s *APIV1Service) UpdateIdentityProvider(c echo.Context) error
UpdateIdentityProvider godoc
@Summary Update an identity provider by ID
@Tags idp
@Accept json
@Produce json
@Param idpId path int true "Identity Provider ID"
@Param body body UpdateIdentityProviderRequest true "Patched identity provider information"
@Success 200 {object} store.IdentityProvider "Patched identity provider"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted patch identity provider request"
@Failure 401 {object} nil "Missing user in session | Unauthorized
@Failure 500 {object} nil "Failed to find user | Failed to patch identity provider"
@Router /api/v1/idp/{idpId} [PATCH]
func (*APIV1Service) UpdateMemo ¶ added in v0.14.4
func (s *APIV1Service) UpdateMemo(c echo.Context) error
UpdateMemo godoc
@Summary Update a memo
@Description Visibility can be PUBLIC, PROTECTED or PRIVATE
@Description *You should omit fields to use their default values
@Tags memo
@Accept json
@Produce json
@Param memoId path int true "ID of memo to update"
@Param body body PatchMemoRequest true "Patched object."
@Success 200 {object} store.Memo "Stored memo"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted patch memo request | Content size overflow, up to 1MB"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 404 {object} nil "Memo not found: %d"
@Failure 500 {object} nil "Failed to find memo | Failed to patch memo | Failed to upsert memo resource | Failed to delete memo resource | Failed to compose memo response"
@Router /api/v1/memo/{memoId} [PATCH]
NOTES: - It's currently possible to create phantom resources and relations. Phantom relations will trigger backend 404's when fetching memo. - Passing 0 to createdTs and updatedTs will set them to 0 in the database, which is probably unwanted.
func (*APIV1Service) UpdateResource ¶ added in v0.14.4
func (s *APIV1Service) UpdateResource(c echo.Context) error
UpdateResource godoc
@Summary Update a resource
@Tags resource
@Produce json
@Param resourceId path int true "Resource ID"
@Param patch body UpdateResourceRequest true "Patch resource request"
@Success 200 {object} store.Resource "Updated resource"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted patch resource request"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 404 {object} nil "Resource not found: %d"
@Failure 500 {object} nil "Failed to find resource | Failed to patch resource"
@Router /api/v1/resource/{resourceId} [PATCH]
func (*APIV1Service) UpdateStorage ¶ added in v0.14.4
func (s *APIV1Service) UpdateStorage(c echo.Context) error
UpdateStorage godoc
@Summary Update a storage
@Tags storage
@Produce json
@Param storageId path int true "Storage ID"
@Param patch body UpdateStorageRequest true "Patch request"
@Success 200 {object} store.Storage "Updated resource"
@Failure 400 {object} nil "ID is not a number: %s | Malformatted patch storage request | Malformatted post storage request"
@Failure 401 {object} nil "Missing user in session | Unauthorized"
@Failure 500 {object} nil "Failed to find user | Failed to patch storage | Failed to convert storage"
@Router /api/v1/storage/{storageId} [PATCH]
func (*APIV1Service) UpdateUser ¶ added in v0.14.4
func (s *APIV1Service) UpdateUser(c echo.Context) error
UpdateUser godoc
@Summary Update a user
@Tags user
@Produce json
@Param id path string true "User ID"
@Param patch body UpdateUserRequest true "Patch request"
@Success 200 {object} store.User "Updated user"
@Failure 400 {object} nil "ID is not a number: %s | Current session user not found with ID: %d | Malformatted patch user request | Invalid update user request"
@Failure 401 {object} nil "Missing user in session"
@Failure 403 {object} nil "Unauthorized to update user"
@Failure 500 {object} nil "Failed to find user | Failed to generate password hash | Failed to patch user | Failed to find userSettingList"
@Router /api/v1/user/{id} [PATCH]
func (*APIV1Service) UploadResource ¶ added in v0.14.4
func (s *APIV1Service) UploadResource(c echo.Context) error
UploadResource godoc
@Summary Upload resource
@Tags resource
@Accept multipart/form-data
@Produce json
@Param file formData file true "File to upload"
@Success 200 {object} store.Resource "Created resource"
@Failure 400 {object} nil "Upload file not found | File size exceeds allowed limit of %d MiB | Failed to parse upload data"
@Failure 401 {object} nil "Missing user in session"
@Failure 500 {object} nil "Failed to get uploading file | Failed to open file | Failed to save resource | Failed to create resource | Failed to create activity"
@Router /api/v1/resource/blob [POST]
func (*APIV1Service) UpsertAccessTokenToStore ¶ added in v0.15.0
func (*APIV1Service) UpsertUserSetting ¶ added in v0.14.4
func (s *APIV1Service) UpsertUserSetting(c echo.Context) error
UpsertUserSetting godoc
@Summary Upsert user setting
@Tags user-setting
@Accept json
@Produce json
@Param body body UpsertUserSettingRequest true "Request object."
@Success 200 {object} store.UserSetting "Created user setting"
@Failure 400 {object} nil "Malformatted post user setting upsert request | Invalid user setting format"
@Failure 401 {object} nil "Missing auth session"
@Failure 500 {object} nil "Failed to upsert user setting"
@Router /api/v1/user/setting [POST]
type Activity ¶
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"`
}
type ActivityCreate ¶
type ActivityCreate struct {
// Standard fields
CreatorID int32
// Domain specific fields
Type ActivityType `json:"type"`
Level ActivityLevel
Payload string `json:"payload"`
}
ActivityCreate is the API message for creating an activity.
type ActivityLevel ¶
type ActivityLevel string
ActivityLevel is the level of activities.
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 (ActivityLevel) String ¶ added in v0.14.0
func (l ActivityLevel) String() string
type ActivityTagCreatePayload ¶
type ActivityTagCreatePayload struct {
TagName string `json:"tagName"`
}
type ActivityType ¶
type ActivityType string
ActivityType is the type for an activity.
const ( // 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" // ActivityMemoCreate is the type for creating memos. ActivityMemoCreate ActivityType = "memo.create" // ActivityMemoUpdate is the type for updating memos. ActivityMemoUpdate ActivityType = "memo.update" // ActivityMemoDelete is the type for deleting memos. ActivityMemoDelete ActivityType = "memo.delete" // ActivityResourceCreate is the type for creating resources. ActivityResourceCreate ActivityType = "resource.create" // ActivityResourceDelete is the type for deleting resources. ActivityResourceDelete ActivityType = "resource.delete" // ActivityTagCreate is the type for creating tags. ActivityTagCreate ActivityType = "tag.create" // ActivityTagDelete is the type for deleting tags. ActivityTagDelete ActivityType = "tag.delete" // ActivityServerStart is the type for starting server. ActivityServerStart ActivityType = "server.start" )
func (ActivityType) String ¶ added in v0.14.0
func (t ActivityType) String() string
type CreateIdentityProviderRequest ¶
type CreateIdentityProviderRequest struct {
Name string `json:"name"`
Type IdentityProviderType `json:"type"`
IdentifierFilter string `json:"identifierFilter"`
Config *IdentityProviderConfig `json:"config"`
}
type CreateMemoRequest ¶ added in v0.14.0
type CreateMemoRequest struct {
// Standard fields
CreatorID int32 `json:"-"`
CreatedTs *int64 `json:"createdTs"`
// Domain specific fields
Visibility Visibility `json:"visibility"`
Content string `json:"content"`
// Related fields
ResourceIDList []int32 `json:"resourceIdList"`
RelationList []*UpsertMemoRelationRequest `json:"relationList"`
}
type CreateResourceRequest ¶ added in v0.14.0
type CreateStorageRequest ¶ added in v0.14.0
type CreateStorageRequest struct {
Name string `json:"name"`
Type StorageType `json:"type"`
Config *StorageConfig `json:"config"`
}
type CreateUserRequest ¶ added in v0.14.0
type CreateUserRequest struct {
Username string `json:"username"`
Role Role `json:"role"`
Email string `json:"email"`
Nickname string `json:"nickname"`
Password string `json:"password"`
}
func (CreateUserRequest) Validate ¶ added in v0.14.0
func (create CreateUserRequest) Validate() error
type CustomizedProfile ¶
type CustomizedProfile struct {
// Name is the server name, default is `memos`
Name string `json:"name"`
// LogoURL is the url of logo image.
LogoURL string `json:"logoUrl"`
// Description is the server description.
Description string `json:"description"`
// Locale is the server default locale.
Locale string `json:"locale"`
// Appearance is the server default appearance.
Appearance string `json:"appearance"`
// ExternalURL is the external url of server. e.g. https://usermemos.com
ExternalURL string `json:"externalUrl"`
}
CustomizedProfile is the struct definition for SystemSettingCustomizedProfileName system setting item.
type DeleteTagRequest ¶ added in v0.14.0
type DeleteTagRequest struct {
Name string `json:"name"`
}
type FieldMapping ¶
type FindMemoRequest ¶ added in v0.14.0
type FindResourceRequest ¶ added in v0.14.0
type IdentityProvider ¶
type IdentityProvider struct {
ID int32 `json:"id"`
Name string `json:"name"`
Type IdentityProviderType `json:"type"`
IdentifierFilter string `json:"identifierFilter"`
Config *IdentityProviderConfig `json:"config"`
}
type IdentityProviderConfig ¶
type IdentityProviderConfig struct {
OAuth2Config *IdentityProviderOAuth2Config `json:"oauth2Config"`
}
type IdentityProviderOAuth2Config ¶
type IdentityProviderOAuth2Config struct {
ClientID string `json:"clientId"`
ClientSecret string `json:"clientSecret"`
AuthURL string `json:"authUrl"`
TokenURL string `json:"tokenUrl"`
UserInfoURL string `json:"userInfoUrl"`
Scopes []string `json:"scopes"`
FieldMapping *FieldMapping `json:"fieldMapping"`
}
type IdentityProviderType ¶
type IdentityProviderType string
const (
IdentityProviderOAuth2Type IdentityProviderType = "OAUTH2"
)
func (IdentityProviderType) String ¶ added in v0.14.0
func (t IdentityProviderType) String() string
type Memo ¶ added in v0.14.0
type Memo struct {
ID int32 `json:"id"`
// Standard fields
RowStatus RowStatus `json:"rowStatus"`
CreatorID int32 `json:"creatorId"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
// Domain specific fields
DisplayTs int64 `json:"displayTs"`
Content string `json:"content"`
Visibility Visibility `json:"visibility"`
Pinned bool `json:"pinned"`
// Related fields
CreatorName string `json:"creatorName"`
CreatorUsername string `json:"creatorUsername"`
ResourceList []*Resource `json:"resourceList"`
RelationList []*MemoRelation `json:"relationList"`
}
type MemoOrganizer ¶ added in v0.14.0
type MemoRelation ¶ added in v0.14.0
type MemoRelation struct {
MemoID int32 `json:"memoId"`
RelatedMemoID int32 `json:"relatedMemoId"`
Type MemoRelationType `json:"type"`
}
type MemoRelationType ¶ added in v0.14.0
type MemoRelationType string
const ( MemoRelationReference MemoRelationType = "REFERENCE" MemoRelationAdditional MemoRelationType = "ADDITIONAL" )
type MemoResource ¶ added in v0.14.0
type MemoResourceDelete ¶ added in v0.14.0
type MemoResourceFind ¶ added in v0.14.0
type PatchMemoRequest ¶ added in v0.14.0
type PatchMemoRequest struct {
ID int32 `json:"-"`
// Standard fields
CreatedTs *int64 `json:"createdTs"`
UpdatedTs *int64
RowStatus *RowStatus `json:"rowStatus"`
// Domain specific fields
Content *string `json:"content"`
Visibility *Visibility `json:"visibility"`
// Related fields
ResourceIDList []int32 `json:"resourceIdList"`
RelationList []*UpsertMemoRelationRequest `json:"relationList"`
}
type Resource ¶ added in v0.14.0
type Resource struct {
ID int32 `json:"id"`
// Standard fields
CreatorID int32 `json:"creatorId"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
// Domain specific fields
Filename string `json:"filename"`
Blob []byte `json:"-"`
InternalPath string `json:"-"`
ExternalLink string `json:"externalLink"`
Type string `json:"type"`
Size int64 `json:"size"`
}
type Storage ¶ added in v0.14.0
type Storage struct {
ID int32 `json:"id"`
Name string `json:"name"`
Type StorageType `json:"type"`
Config *StorageConfig `json:"config"`
}
type StorageConfig ¶ added in v0.14.0
type StorageConfig struct {
S3Config *StorageS3Config `json:"s3Config"`
}
type StorageS3Config ¶ added in v0.14.0
type StorageType ¶ added in v0.14.0
type StorageType string
const (
StorageS3 StorageType = "S3"
)
func (StorageType) String ¶ added in v0.14.0
func (t StorageType) String() string
type SystemSetting ¶
type SystemSetting struct {
Name SystemSettingName `json:"name"`
// Value is a JSON string with basic value.
Value string `json:"value"`
Description string `json:"description"`
}
type SystemSettingName ¶
type SystemSettingName string
const ( // SystemSettingServerIDName is the name of server id. SystemSettingServerIDName SystemSettingName = "server-id" // SystemSettingSecretSessionName is the name of secret session. SystemSettingSecretSessionName SystemSettingName = "secret-session" // SystemSettingAllowSignUpName is the name of allow signup setting. SystemSettingAllowSignUpName SystemSettingName = "allow-signup" // SystemSettingDisablePasswordLoginName is the name of disable password login setting. SystemSettingDisablePasswordLoginName SystemSettingName = "disable-password-login" // SystemSettingDisablePublicMemosName is the name of disable public memos setting. SystemSettingDisablePublicMemosName SystemSettingName = "disable-public-memos" // SystemSettingMaxUploadSizeMiBName is the name of max upload size setting. SystemSettingMaxUploadSizeMiBName SystemSettingName = "max-upload-size-mib" // SystemSettingAdditionalStyleName is the name of additional style. SystemSettingAdditionalStyleName SystemSettingName = "additional-style" // SystemSettingAdditionalScriptName is the name of additional script. SystemSettingAdditionalScriptName SystemSettingName = "additional-script" // SystemSettingCustomizedProfileName is the name of customized server profile. SystemSettingCustomizedProfileName SystemSettingName = "customized-profile" // SystemSettingStorageServiceIDName is the name of storage service ID. SystemSettingStorageServiceIDName SystemSettingName = "storage-service-id" // SystemSettingLocalStoragePathName is the name of local storage path. SystemSettingLocalStoragePathName SystemSettingName = "local-storage-path" // SystemSettingTelegramBotTokenName is the name of Telegram Bot Token. SystemSettingTelegramBotTokenName SystemSettingName = "telegram-bot-token" // SystemSettingMemoDisplayWithUpdatedTsName is the name of memo display with updated ts. SystemSettingMemoDisplayWithUpdatedTsName SystemSettingName = "memo-display-with-updated-ts" // SystemSettingAutoBackupIntervalName is the name of auto backup interval as seconds. SystemSettingAutoBackupIntervalName SystemSettingName = "auto-backup-interval" )
func (SystemSettingName) String ¶
func (key SystemSettingName) String() string
type SystemStatus ¶ added in v0.14.0
type SystemStatus struct {
Host *User `json:"host"`
Profile profile.Profile `json:"profile"`
DBSize int64 `json:"dbSize"`
// System settings
// Allow sign up.
AllowSignUp bool `json:"allowSignUp"`
// Disable password login.
DisablePasswordLogin bool `json:"disablePasswordLogin"`
// Disable public memos.
DisablePublicMemos bool `json:"disablePublicMemos"`
// Max upload size.
MaxUploadSizeMiB int `json:"maxUploadSizeMiB"`
// Auto Backup Interval.
AutoBackupInterval int `json:"autoBackupInterval"`
// Additional style.
AdditionalStyle string `json:"additionalStyle"`
// Additional script.
AdditionalScript string `json:"additionalScript"`
// Customized server profile, including server name and external url.
CustomizedProfile CustomizedProfile `json:"customizedProfile"`
// Storage service ID.
StorageServiceID int32 `json:"storageServiceId"`
// Local storage path.
LocalStoragePath string `json:"localStoragePath"`
// Memo display with updated timestamp.
MemoDisplayWithUpdatedTs bool `json:"memoDisplayWithUpdatedTs"`
}
type UpdateIdentityProviderRequest ¶
type UpdateIdentityProviderRequest struct {
ID int32 `json:"-"`
Type IdentityProviderType `json:"type"`
Name *string `json:"name"`
IdentifierFilter *string `json:"identifierFilter"`
Config *IdentityProviderConfig `json:"config"`
}
type UpdateResourceRequest ¶ added in v0.14.0
type UpdateResourceRequest struct {
Filename *string `json:"filename"`
}
type UpdateStorageRequest ¶ added in v0.14.0
type UpdateStorageRequest struct {
Type StorageType `json:"type"`
Name *string `json:"name"`
Config *StorageConfig `json:"config"`
}
type UpdateUserRequest ¶ added in v0.14.0
type UpdateUserRequest struct {
RowStatus *RowStatus `json:"rowStatus"`
Username *string `json:"username"`
Email *string `json:"email"`
Nickname *string `json:"nickname"`
Password *string `json:"password"`
AvatarURL *string `json:"avatarUrl"`
}
func (UpdateUserRequest) Validate ¶ added in v0.14.0
func (update UpdateUserRequest) Validate() error
type UpsertMemoOrganizerRequest ¶ added in v0.14.0
type UpsertMemoOrganizerRequest struct {
Pinned bool `json:"pinned"`
}
type UpsertMemoRelationRequest ¶ added in v0.14.0
type UpsertMemoRelationRequest struct {
RelatedMemoID int32 `json:"relatedMemoId"`
Type MemoRelationType `json:"type"`
}
type UpsertMemoResourceRequest ¶ added in v0.14.0
type UpsertSystemSettingRequest ¶ added in v0.14.0
type UpsertSystemSettingRequest struct {
Name SystemSettingName `json:"name"`
Value string `json:"value"`
Description string `json:"description"`
}
func (UpsertSystemSettingRequest) Validate ¶ added in v0.14.0
func (upsert UpsertSystemSettingRequest) Validate() error
type UpsertTagRequest ¶ added in v0.14.0
type UpsertTagRequest struct {
Name string `json:"name"`
}
type UpsertUserSettingRequest ¶ added in v0.14.0
type UpsertUserSettingRequest struct {
UserID int32 `json:"-"`
Key UserSettingKey `json:"key"`
Value string `json:"value"`
}
func (UpsertUserSettingRequest) Validate ¶ added in v0.14.0
func (upsert UpsertUserSettingRequest) Validate() error
type User ¶ added in v0.14.0
type User struct {
ID int32 `json:"id"`
// Standard fields
RowStatus RowStatus `json:"rowStatus"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
// Domain specific fields
Username string `json:"username"`
Role Role `json:"role"`
Email string `json:"email"`
Nickname string `json:"nickname"`
PasswordHash string `json:"-"`
AvatarURL string `json:"avatarUrl"`
UserSettingList []*UserSetting `json:"userSettingList"`
}
type UserSetting ¶
type UserSetting struct {
UserID int32 `json:"userId"`
Key UserSettingKey `json:"key"`
Value string `json:"value"`
}
type UserSettingKey ¶
type UserSettingKey string
const ( // UserSettingLocaleKey is the key type for user locale. UserSettingLocaleKey UserSettingKey = "locale" // UserSettingAppearanceKey is the key type for user appearance. UserSettingAppearanceKey UserSettingKey = "appearance" // UserSettingMemoVisibilityKey is the key type for user preference memo default visibility. UserSettingMemoVisibilityKey UserSettingKey = "memo-visibility" // UserSettingTelegramUserIDKey is the key type for telegram UserID of memos user. UserSettingTelegramUserIDKey UserSettingKey = "telegram-user-id" )
func (UserSettingKey) String ¶
func (key UserSettingKey) String() string
String returns the string format of UserSettingKey type.
type Visibility ¶
type Visibility string
Visibility is the type of a visibility.
const ( // Public is the PUBLIC visibility. Public Visibility = "PUBLIC" // Protected is the PROTECTED visibility. Protected Visibility = "PROTECTED" // Private is the PRIVATE visibility. Private Visibility = "PRIVATE" )
func (Visibility) String ¶
func (v Visibility) String() string