Skip to content

Commit daa73b3

Browse files
author
pedro
committed
update:统一插件的js导出规范
1 parent 7014dfc commit daa73b3

16 files changed

Lines changed: 227 additions & 210 deletions

File tree

app/config/setting.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module.exports = {
1818
// path: "app/plugins/poem",
1919
// // other config
2020
// limit: 2
21-
// }
21+
// },
2222
// notify: {
2323
// enable: true,
2424
// path: "app/plugins/notify",

app/plugins/notify/app/enums.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
"use strict";
22

3-
exports.MessageIsReaded = {
3+
const MessageIsReaded = {
44
UNREAD: 0,
55
READED: 1
66
};
77

8-
exports.MessageIsPushed = {
8+
const MessageIsPushed = {
99
UNPUSH: 0,
1010
PUSHED: 1
1111
};
12+
13+
module.exports = { MessageIsReaded, MessageIsPushed };
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
"use strict";
2+
3+
const { NotFound, Forbidden } = require("lin-mizar");
4+
const { Event } = require("./model");
5+
6+
class EventDao {
7+
async getEvents (groupId) {
8+
const event = await Event.findOne({
9+
where: {
10+
group_id: groupId
11+
}
12+
});
13+
if (!event) {
14+
throw new NotFound({
15+
msg: "当前用户没有推送项"
16+
});
17+
}
18+
return event.message_events.split(",");
19+
}
20+
21+
async createEvents (v) {
22+
const event = await Event.findOne({
23+
where: {
24+
group_id: v.get("body.group_id")
25+
}
26+
});
27+
if (event) {
28+
throw new Forbidden({
29+
msg: "当前权限组已存在推送项"
30+
});
31+
}
32+
const ev = new Event();
33+
ev.group_id = v.get("body.group_id");
34+
ev.message_events = v.get("body.events").join(",");
35+
ev.save();
36+
}
37+
38+
async updateEvents (v) {
39+
const event = await Event.findOne({
40+
where: {
41+
group_id: v.get("body.group_id")
42+
}
43+
});
44+
if (!event) {
45+
throw new NotFound({
46+
msg: "当前权限组不存在推送项"
47+
});
48+
}
49+
event.message_events = v.get("body.events").join(",");
50+
event.save();
51+
}
52+
}
53+
54+
module.exports = { EventDao };

app/plugins/notify/app/index.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ const { sseApi } = require("./sse");
44
const { messageApi } = require("./message");
55
const { Event, Message } = require("./model");
66

7-
exports.sseApi = sseApi;
8-
exports.messageApi = messageApi;
9-
exports.Event = Event;
10-
exports.Message = Message;
7+
module.exports = {
8+
sseApi,
9+
messageApi,
10+
Event,
11+
Message
12+
};
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
"use strict";
2+
3+
const { NotFound, Forbidden } = require("lin-mizar");
4+
const { get } = require("lodash");
5+
const { Message } = require("./model");
6+
const { MessageIsReaded } = require("./enums");
7+
const Sequelize = require("sequelize");
8+
9+
class MessageDao {
10+
async getMessages (ctx, start, count1) {
11+
const currentUser = ctx.currentUser;
12+
let condition = {};
13+
const readed = get(ctx.query, "readed");
14+
readed && (condition["readed"] = readed);
15+
const pushed = get(ctx.query, "pushed");
16+
pushed && (condition["pushed"] = pushed);
17+
18+
const { rows, count } = await Message.findAndCountAll({
19+
where: {
20+
...condition,
21+
user_id: currentUser.id
22+
},
23+
limit: count1,
24+
offset: start
25+
});
26+
return {
27+
rows,
28+
count
29+
};
30+
}
31+
32+
async readMessage (id) {
33+
const msg = await Message.findByPk(id);
34+
if (!msg) {
35+
throw new NotFound({
36+
msg: "未找到消息"
37+
});
38+
}
39+
if (msg.readed === MessageIsReaded.READED) {
40+
throw new Forbidden({
41+
msg: "不可重复设置为已读"
42+
});
43+
}
44+
msg.readed = MessageIsReaded.READED;
45+
msg.save();
46+
}
47+
48+
async readMessages (v) {
49+
await Message.update(
50+
{
51+
readed: MessageIsReaded.READED
52+
},
53+
{
54+
where: {
55+
[Sequelize.Op.in]: v.get("body.ids")
56+
}
57+
}
58+
);
59+
}
60+
61+
async deleteMessage (id) {
62+
const msg = await Message.findByPk(id);
63+
if (!msg) {
64+
throw new NotFound({
65+
msg: "未找到消息"
66+
});
67+
}
68+
await Message.destroy({
69+
where: {
70+
id: id
71+
}
72+
});
73+
}
74+
}
75+
76+
module.exports = { MessageDao };

app/plugins/notify/app/message.js

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -5,87 +5,15 @@ const {
55
loginRequired,
66
NotFound,
77
paginate,
8-
Success,
9-
Forbidden
8+
Success
109
} = require("lin-mizar");
1110
const { getSafeParamId } = require("../../../libs/util");
1211
const { IdsValidator } = require("./validators");
13-
const { get } = require("lodash");
14-
const { Message } = require("./model");
15-
const { MessageIsReaded } = require("./enums");
16-
const Sequelize = require("sequelize");
12+
const { MessageDao } = require("./message-dao");
1713

1814
const messageApi = new LinRouter({
1915
prefix: "/message"
2016
});
21-
exports.messageApi = messageApi;
22-
23-
class MessageDao {
24-
async getMessages (ctx, start, count1) {
25-
const currentUser = ctx.currentUser;
26-
let condition = {};
27-
const readed = get(ctx.query, "readed");
28-
readed && (condition["readed"] = readed);
29-
const pushed = get(ctx.query, "pushed");
30-
pushed && (condition["pushed"] = pushed);
31-
32-
const { rows, count } = await Message.findAndCountAll({
33-
where: {
34-
...condition,
35-
user_id: currentUser.id
36-
},
37-
limit: count1,
38-
offset: start
39-
});
40-
return {
41-
rows,
42-
count
43-
};
44-
}
45-
46-
async readMessage (id) {
47-
const msg = await Message.findByPk(id);
48-
if (!msg) {
49-
throw new NotFound({
50-
msg: "未找到消息"
51-
});
52-
}
53-
if (msg.readed === MessageIsReaded.READED) {
54-
throw new Forbidden({
55-
msg: "不可重复设置为已读"
56-
});
57-
}
58-
msg.readed = MessageIsReaded.READED;
59-
msg.save();
60-
}
61-
62-
async readMessages (v) {
63-
await Message.update(
64-
{
65-
readed: MessageIsReaded.READED
66-
},
67-
{
68-
where: {
69-
[Sequelize.Op.in]: v.get("body.ids")
70-
}
71-
}
72-
);
73-
}
74-
75-
async deleteMessage (id) {
76-
const msg = await Message.findByPk(id);
77-
if (!msg) {
78-
throw new NotFound({
79-
msg: "未找到消息"
80-
});
81-
}
82-
await Message.destroy({
83-
where: {
84-
id: id
85-
}
86-
});
87-
}
88-
}
8917

9018
const messageDao = new MessageDao();
9119

@@ -178,3 +106,5 @@ messageApi.get("/test", async ctx => {
178106
msg: "hello baby!"
179107
});
180108
});
109+
110+
module.exports = { messageApi };

app/plugins/notify/app/middleware.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ const { MessageBroker } = require("lin-mizar/lin/sse");
77
const { Message } = require("./model");
88
const { MessageIsPushed } = require("./enums");
99

10-
exports.broker = new MessageBroker(config.getItem("notify.retry"));
11-
exports.MESSAGE_EVENTS = new Set();
12-
exports.notify = (template, event, extra) => {
13-
exports.MESSAGE_EVENTS.add(event);
10+
const broker = new MessageBroker(config.getItem("notify.retry"));
11+
const MESSAGE_EVENTS = new Set();
12+
13+
const notify = (template, event, extra) => {
14+
MESSAGE_EVENTS.add(event);
1415
return async (ctx, next) => {
1516
await next();
1617
pushMessage(template, event, ctx, extra);
@@ -25,7 +26,7 @@ function pushMessage (template, event, ctx, extra) {
2526
ctx.request
2627
);
2728
const now = new Date();
28-
exports.broker.addMessage(
29+
broker.addMessage(
2930
event,
3031
Object.assign(
3132
{
@@ -44,3 +45,5 @@ function pushMessage (template, event, ctx, extra) {
4445
msg.user_name = ctx.currentUser.nickname;
4546
msg.save();
4647
}
48+
49+
module.exports = { broker, MESSAGE_EVENTS, notify };

app/plugins/notify/app/model.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ const dayjs = require("dayjs");
33
const { db } = require("lin-mizar/lin/db");
44
const Sequelize = require("sequelize");
55

6-
let Event = db.define(
7-
"notify_event",
6+
class Event extends Sequelize.Model {}
7+
8+
Event.init(
89
{
910
id: {
1011
type: Sequelize.INTEGER,
@@ -22,14 +23,16 @@ let Event = db.define(
2223
},
2324
{
2425
tableName: "notify_event",
26+
modelName: "event",
2527
createdAt: false,
26-
updatedAt: false
28+
updatedAt: false,
29+
sequelize: db
2730
}
2831
);
29-
exports.Event = Event;
3032

31-
let Message = db.define(
32-
"notify_message",
33+
class Message extends Sequelize.Model {}
34+
35+
Message.init(
3336
{
3437
id: {
3538
type: Sequelize.INTEGER,
@@ -65,8 +68,10 @@ let Message = db.define(
6568
},
6669
{
6770
tableName: "notify_message",
71+
modelName: "message",
6872
createdAt: "time",
6973
updatedAt: false,
74+
sequelize: db,
7075
getterMethods: {
7176
time () {
7277
return dayjs(this.getDataValue("time")).unix();
@@ -88,4 +93,5 @@ Message.prototype.toJSON = function () {
8893
};
8994
return origin;
9095
};
91-
exports.Message = Message;
96+
97+
module.exports = { Message, Event };

0 commit comments

Comments
 (0)