mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: update memo relation types (#1658)
This commit is contained in:
102
.github/workflows/build-artifacts.yml
vendored
102
.github/workflows/build-artifacts.yml
vendored
@ -24,63 +24,63 @@ jobs:
|
|||||||
CGO_ENABLED: 1
|
CGO_ENABLED: 1
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Clone Memos
|
- name: Clone Memos
|
||||||
run: git clone https://github.com/usememos/memos.git
|
run: git clone https://github.com/usememos/memos.git
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v2
|
uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: '18.12.1'
|
node-version: "18"
|
||||||
|
|
||||||
- name: Build frontend (Windows)
|
- name: Build frontend (Windows)
|
||||||
if: matrix.os == 'windows-latest'
|
if: matrix.os == 'windows-latest'
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
cd memos/web
|
cd memos/web
|
||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
pnpm i --frozen-lockfile
|
pnpm i --frozen-lockfile
|
||||||
pnpm build
|
pnpm build
|
||||||
Remove-Item -Path ../server/dist -Recurse -Force
|
Remove-Item -Path ../server/dist -Recurse -Force
|
||||||
mv dist ../server/
|
mv dist ../server/
|
||||||
|
|
||||||
- name: Build frontend (non-Windows)
|
- name: Build frontend (non-Windows)
|
||||||
if: matrix.os != 'windows-latest'
|
if: matrix.os != 'windows-latest'
|
||||||
run: |
|
run: |
|
||||||
cd memos/web
|
cd memos/web
|
||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
pnpm i --frozen-lockfile
|
pnpm i --frozen-lockfile
|
||||||
pnpm build
|
pnpm build
|
||||||
rm -rf ../server/dist
|
rm -rf ../server/dist
|
||||||
mv dist ../server/
|
mv dist ../server/
|
||||||
|
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: '1.19.3'
|
go-version: 1.19
|
||||||
|
|
||||||
- name: Install mingw-w64 (Windows)
|
- name: Install mingw-w64 (Windows)
|
||||||
if: matrix.os == 'windows-latest'
|
if: matrix.os == 'windows-latest'
|
||||||
run: |
|
run: |
|
||||||
choco install mingw
|
choco install mingw
|
||||||
echo ${{ matrix.cgo_env }} >> $GITHUB_ENV
|
echo ${{ matrix.cgo_env }} >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install gcc-aarch64-linux-gnu (Ubuntu ARM64)
|
- name: Install gcc-aarch64-linux-gnu (Ubuntu ARM64)
|
||||||
if: matrix.os == 'ubuntu-latest' && matrix.goarch == 'arm64'
|
if: matrix.os == 'ubuntu-latest' && matrix.goarch == 'arm64'
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y gcc-aarch64-linux-gnu
|
sudo apt-get install -y gcc-aarch64-linux-gnu
|
||||||
echo "CC=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
|
echo "CC=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Build backend
|
- name: Build backend
|
||||||
run: |
|
run: |
|
||||||
cd memos
|
cd memos
|
||||||
go build -o memos-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.os == 'windows-latest' && '.exe' || '' }} ./main.go
|
go build -o memos-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.os == 'windows-latest' && '.exe' || '' }} ./main.go
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: memos-binary-${{ matrix.os }}-${{ matrix.goarch }}
|
name: memos-binary-${{ matrix.os }}-${{ matrix.goarch }}
|
||||||
path: memos/memos-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.os == 'windows-latest' && '.exe' || '' }}
|
path: memos/memos-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.os == 'windows-latest' && '.exe' || '' }}
|
||||||
|
@ -57,8 +57,8 @@ type MemoCreate struct {
|
|||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
|
|
||||||
// Related fields
|
// Related fields
|
||||||
ResourceIDList []int `json:"resourceIdList"`
|
ResourceIDList []int `json:"resourceIdList"`
|
||||||
MemoRelationList []*MemoRelationUpsert `json:"memoRelationList"`
|
RelationList []*MemoRelationUpsert `json:"relationList"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MemoPatch struct {
|
type MemoPatch struct {
|
||||||
@ -74,8 +74,8 @@ type MemoPatch struct {
|
|||||||
Visibility *Visibility `json:"visibility"`
|
Visibility *Visibility `json:"visibility"`
|
||||||
|
|
||||||
// Related fields
|
// Related fields
|
||||||
ResourceIDList []int `json:"resourceIdList"`
|
ResourceIDList []int `json:"resourceIdList"`
|
||||||
MemoRelationList []*MemoRelationUpsert `json:"memoRelationList"`
|
RelationList []*MemoRelationUpsert `json:"relationList"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MemoFind struct {
|
type MemoFind struct {
|
||||||
|
@ -8,12 +8,12 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type MemoRelation struct {
|
type MemoRelation struct {
|
||||||
MemoID int
|
MemoID int `json:"memoId"`
|
||||||
RelatedMemoID int
|
RelatedMemoID int `json:"relatedMemoId"`
|
||||||
Type MemoRelationType
|
Type MemoRelationType `json:"type"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MemoRelationUpsert struct {
|
type MemoRelationUpsert struct {
|
||||||
RelatedMemoID int
|
RelatedMemoID int `json:"relatedMemoId"`
|
||||||
Type MemoRelationType
|
Type MemoRelationType `json:"type"`
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if s.Profile.IsDev() {
|
if s.Profile.IsDev() {
|
||||||
for _, memoRelationUpsert := range memoCreate.MemoRelationList {
|
for _, memoRelationUpsert := range memoCreate.RelationList {
|
||||||
if _, err := s.Store.UpsertMemoRelation(ctx, &store.MemoRelationMessage{
|
if _, err := s.Store.UpsertMemoRelation(ctx, &store.MemoRelationMessage{
|
||||||
MemoID: memo.ID,
|
MemoID: memo.ID,
|
||||||
RelatedMemoID: memoRelationUpsert.RelatedMemoID,
|
RelatedMemoID: memoRelationUpsert.RelatedMemoID,
|
||||||
@ -171,7 +171,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if s.Profile.IsDev() {
|
if s.Profile.IsDev() {
|
||||||
for _, memoRelationUpsert := range memoPatch.MemoRelationList {
|
for _, memoRelationUpsert := range memoPatch.RelationList {
|
||||||
if _, err := s.Store.UpsertMemoRelation(ctx, &store.MemoRelationMessage{
|
if _, err := s.Store.UpsertMemoRelation(ctx, &store.MemoRelationMessage{
|
||||||
MemoID: memo.ID,
|
MemoID: memo.ID,
|
||||||
RelatedMemoID: memoRelationUpsert.RelatedMemoID,
|
RelatedMemoID: memoRelationUpsert.RelatedMemoID,
|
||||||
|
@ -35,7 +35,7 @@ func TestMemoRelationServer(t *testing.T) {
|
|||||||
require.Equal(t, "test memo", memo.Content)
|
require.Equal(t, "test memo", memo.Content)
|
||||||
memo2, err := s.postMemoCreate(&api.MemoCreate{
|
memo2, err := s.postMemoCreate(&api.MemoCreate{
|
||||||
Content: "test memo2",
|
Content: "test memo2",
|
||||||
MemoRelationList: []*api.MemoRelationUpsert{
|
RelationList: []*api.MemoRelationUpsert{
|
||||||
{
|
{
|
||||||
RelatedMemoID: memo.ID,
|
RelatedMemoID: memo.ID,
|
||||||
Type: api.MemoRelationReference,
|
Type: api.MemoRelationReference,
|
||||||
|
@ -240,6 +240,7 @@ const MemoEditor = () => {
|
|||||||
content,
|
content,
|
||||||
visibility: editorState.memoVisibility,
|
visibility: editorState.memoVisibility,
|
||||||
resourceIdList: editorState.resourceList.map((resource) => resource.id),
|
resourceIdList: editorState.resourceList.map((resource) => resource.id),
|
||||||
|
relationList: [],
|
||||||
});
|
});
|
||||||
filterStore.clearFilter();
|
filterStore.clearFilter();
|
||||||
}
|
}
|
||||||
|
3
web/src/types/modules/memo.d.ts
vendored
3
web/src/types/modules/memo.d.ts
vendored
@ -16,11 +16,13 @@ interface Memo {
|
|||||||
|
|
||||||
creatorName: string;
|
creatorName: string;
|
||||||
resourceList: Resource[];
|
resourceList: Resource[];
|
||||||
|
relationList: MemoRelation[];
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MemoCreate {
|
interface MemoCreate {
|
||||||
content: string;
|
content: string;
|
||||||
resourceIdList: ResourceId[];
|
resourceIdList: ResourceId[];
|
||||||
|
relationList: MemoRelationUpsert[];
|
||||||
visibility?: Visibility;
|
visibility?: Visibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,6 +32,7 @@ interface MemoPatch {
|
|||||||
rowStatus?: RowStatus;
|
rowStatus?: RowStatus;
|
||||||
content?: string;
|
content?: string;
|
||||||
resourceIdList?: ResourceId[];
|
resourceIdList?: ResourceId[];
|
||||||
|
relationList?: MemoRelationUpsert[];
|
||||||
visibility?: Visibility;
|
visibility?: Visibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
web/src/types/modules/memoRelation.d.ts
vendored
Normal file
12
web/src/types/modules/memoRelation.d.ts
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
type MemoRelationType = "REFERENCE" | "ADDITIONAL";
|
||||||
|
|
||||||
|
interface MemoRelation {
|
||||||
|
memoId: MemoId;
|
||||||
|
relatedMemoId: MemoId;
|
||||||
|
type: MemoRelationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MemoRelationUpsert {
|
||||||
|
relatedMemoId: MemoId;
|
||||||
|
type: MemoRelationType;
|
||||||
|
}
|
Reference in New Issue
Block a user