77 lines
1.8 KiB
Plaintext
77 lines
1.8 KiB
Plaintext
syntax = "v1"
|
|
|
|
info (
|
|
title: "Announcement API"
|
|
desc: "API for ppanel"
|
|
author: "Tension"
|
|
email: "tension@ppanel.com"
|
|
version: "0.0.1"
|
|
)
|
|
|
|
import "../types.api"
|
|
|
|
type (
|
|
CreateAnnouncementRequest {
|
|
Title string `json:"title" validate:"required"`
|
|
Content string `json:"content" validate:"required"`
|
|
}
|
|
UpdateAnnouncementRequest {
|
|
Id int64 `json:"id" validate:"required"`
|
|
Title string `json:"title"`
|
|
Content string `json:"content"`
|
|
Show *bool `json:"show"`
|
|
Pinned *bool `json:"pinned"`
|
|
Popup *bool `json:"popup"`
|
|
}
|
|
UpdateAnnouncementEnableRequest {
|
|
Id int64 `json:"id" validate:"required"`
|
|
Enable *bool `json:"enable" validate:"required"`
|
|
}
|
|
DeleteAnnouncementRequest {
|
|
Id int64 `json:"id" validate:"required"`
|
|
}
|
|
GetAnnouncementListRequest {
|
|
Page int64 `form:"page"`
|
|
Size int64 `form:"size"`
|
|
Show *bool `form:"show,omitempty"`
|
|
Pinned *bool `form:"pinned,omitempty"`
|
|
Popup *bool `form:"popup,omitempty"`
|
|
Search string `form:"search,omitempty"`
|
|
}
|
|
GetAnnouncementListResponse {
|
|
Total int64 `json:"total"`
|
|
List []Announcement `json:"list"`
|
|
}
|
|
GetAnnouncementRequest {
|
|
Id int64 `form:"id" validate:"required"`
|
|
}
|
|
)
|
|
|
|
@server (
|
|
prefix: v1/admin/announcement
|
|
group: admin/announcement
|
|
middleware: AuthMiddleware
|
|
)
|
|
service ppanel {
|
|
@doc "Create announcement"
|
|
@handler CreateAnnouncement
|
|
post / (CreateAnnouncementRequest)
|
|
|
|
@doc "Update announcement"
|
|
@handler UpdateAnnouncement
|
|
put / (UpdateAnnouncementRequest)
|
|
|
|
@doc "Get announcement list"
|
|
@handler GetAnnouncementList
|
|
get /list (GetAnnouncementListRequest) returns (GetAnnouncementListResponse)
|
|
|
|
@doc "Delete announcement"
|
|
@handler DeleteAnnouncement
|
|
delete / (DeleteAnnouncementRequest)
|
|
|
|
@doc "Get announcement"
|
|
@handler GetAnnouncement
|
|
get /detail (GetAnnouncementRequest) returns (Announcement)
|
|
}
|
|
|