hi-server/apis/admin/announcement.api
2025-10-10 07:13:36 -07:00

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)
}