chore: update memo relation types (#1658)

pull/1663/head
boojack 2 years ago committed by GitHub
parent 7726ed4245
commit 2cc5691efd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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();
} }

@ -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;
} }

@ -0,0 +1,12 @@
type MemoRelationType = "REFERENCE" | "ADDITIONAL";
interface MemoRelation {
memoId: MemoId;
relatedMemoId: MemoId;
type: MemoRelationType;
}
interface MemoRelationUpsert {
relatedMemoId: MemoId;
type: MemoRelationType;
}
Loading…
Cancel
Save