chore: add seeding data

This commit is contained in:
Steven 2022-09-12 09:39:27 +08:00
parent 5f48be3b7a
commit e82c821396
8 changed files with 119 additions and 5 deletions

14
.gitignore vendored
View File

@ -1 +1,13 @@
.air # Air (hot reload) generated
.air
# temp folder
tmp
# Frontend asset
web/dist
# build folder
build
.DS_Store

View File

@ -31,6 +31,15 @@ func (s *Server) registerWorkspaceRoutes(g *echo.Group) {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create workspace").SetInternal(err) return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create workspace").SetInternal(err)
} }
_, err = s.Store.UpsertWorkspaceUser(ctx, &api.WorkspaceUserUpsert{
WorkspaceID: workspace.ID,
UserID: userID,
Role: api.RoleAdmin,
})
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create workspace user").SetInternal(err)
}
c.Response().Header().Set(echo.HeaderContentType, echo.MIMEApplicationJSONCharsetUTF8) c.Response().Header().Set(echo.HeaderContentType, echo.MIMEApplicationJSONCharsetUTF8)
if err := json.NewEncoder(c.Response().Writer).Encode(composeResponse(workspace)); err != nil { if err := json.NewEncoder(c.Response().Writer).Encode(composeResponse(workspace)); err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to encode workspace response").SetInternal(err) return echo.NewHTTPError(http.StatusInternalServerError, "Failed to encode workspace response").SetInternal(err)

View File

@ -108,7 +108,7 @@ CREATE TABLE shortcut (
workspace_id INTEGER NOT NULL, workspace_id INTEGER NOT NULL,
name TEXT NOT NULL, name TEXT NOT NULL,
link TEXT NOT NULL DEFAULT '', link TEXT NOT NULL DEFAULT '',
visibility TEXT NOT NULL CHECK (row_status IN ('PRIVATE', 'WORKSPACE')) DEFAULT 'PRIVATE', visibility TEXT NOT NULL CHECK (visibility IN ('PRIVATE', 'WORKSPACE')) DEFAULT 'PRIVATE',
FOREIGN KEY(creator_id) REFERENCES user(id) ON DELETE CASCADE, FOREIGN KEY(creator_id) REFERENCES user(id) ON DELETE CASCADE,
FOREIGN KEY(workspace_id) REFERENCES workspace(id) ON DELETE CASCADE FOREIGN KEY(workspace_id) REFERENCES workspace(id) ON DELETE CASCADE
); );

View File

@ -11,12 +11,14 @@ DROP TABLE IF EXISTS `workspace`;
-- workspace -- workspace
CREATE TABLE workspace ( CREATE TABLE workspace (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
creator_id INTEGER NOT NULL,
created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
row_status TEXT NOT NULL CHECK (row_status IN ('NORMAL', 'ARCHIVED')) DEFAULT 'NORMAL', row_status TEXT NOT NULL CHECK (row_status IN ('NORMAL', 'ARCHIVED')) DEFAULT 'NORMAL',
name TEXT NOT NULL UNIQUE, name TEXT NOT NULL UNIQUE,
description TEXT NOT NULL DEFAULT '' description TEXT NOT NULL DEFAULT '',
) FOREIGN KEY(creator_id) REFERENCES user(id) ON DELETE CASCADE
);
INSERT INTO INSERT INTO
sqlite_sequence (name, seq) sqlite_sequence (name, seq)
@ -106,7 +108,7 @@ CREATE TABLE shortcut (
workspace_id INTEGER NOT NULL, workspace_id INTEGER NOT NULL,
name TEXT NOT NULL, name TEXT NOT NULL,
link TEXT NOT NULL DEFAULT '', link TEXT NOT NULL DEFAULT '',
visibility TEXT NOT NULL CHECK (row_status IN ('PRIVATE', 'WORKSPACE')) DEFAULT 'PRIVATE', visibility TEXT NOT NULL CHECK (visibility IN ('PRIVATE', 'WORKSPACE')) DEFAULT 'PRIVATE',
FOREIGN KEY(creator_id) REFERENCES user(id) ON DELETE CASCADE, FOREIGN KEY(creator_id) REFERENCES user(id) ON DELETE CASCADE,
FOREIGN KEY(workspace_id) REFERENCES workspace(id) ON DELETE CASCADE FOREIGN KEY(workspace_id) REFERENCES workspace(id) ON DELETE CASCADE
); );

View File

@ -0,0 +1,49 @@
INSERT INTO
user (
`id`,
`email`,
`name`,
`password_hash`
)
VALUES
(
101,
'demo@iamcorgi.com',
'Demo Host',
-- raw password: secret
'$2a$14$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK'
);
INSERT INTO
user (
`id`,
`email`,
`name`,
`password_hash`
)
VALUES
(
102,
'jack@iamcorgi.com',
'Jack',
-- raw password: secret
'$2a$14$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK'
);
INSERT INTO
user (
`id`,
`row_status`,
`email`,
`name`,
`password_hash`
)
VALUES
(
103,
'ARCHIVED',
'bob@iamcorgi.com',
'Bob',
-- raw password: secret
'$2a$14$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK'
);

View File

@ -0,0 +1,14 @@
INSERT INTO
workspace (
`id`,
`creator_id`,
`name`,
`description`
)
VALUES
(
11,
101,
'Demo',
''
);

View File

@ -0,0 +1,12 @@
INSERT INTO
workspace_user (
`workspace_id`,
`user_id`,
`role`
)
VALUES
(
11,
101,
'ADMIN'
);

View File

@ -0,0 +1,16 @@
INSERT INTO
shortcut (
`creator_id`,
`workspace_id`,
`name`,
`link`,
`visibility`
)
VALUES
(
101,
11,
'baidu',
'https://baidu.com',
'WORKSPACE'
);