package service_event import ( "context" "nixcn-cms/data" "nixcn-cms/internal/exception" "nixcn-cms/service/shared" "time" "github.com/google/uuid" ) type EventInfoData struct { EventId uuid.UUID `json:"event_id"` } type EventInfoPayload struct { Context context.Context Data *EventInfoData } type EventInfoResponse struct { Name string `json:"name"` StartTime time.Time `json:"start_time"` EndTime time.Time `json:"end_time"` } type EventInfoResult struct { Common shared.CommonResult Data *EventInfoResponse } func (self *EventServiceImpl) GetEventInfo(payload *EventInfoPayload) (result *EventInfoResult) { event, err := new(data.Event).GetEventById(payload.Context, payload.Data.EventId) if err != nil { exception := new(exception.Builder). SetStatus(exception.StatusUser). SetService(exception.ServiceEvent). SetEndpoint(exception.EndpointEventServiceInfo). SetType(exception.TypeSpecific). SetOriginal(exception.EventInfoNotFound). SetError(err). Throw(payload.Context) result = &EventInfoResult{ Common: shared.CommonResult{ HttpCode: 404, Exception: exception, }, } return } result = &EventInfoResult{ Common: shared.CommonResult{ HttpCode: 200, Exception: new(exception.Builder). SetStatus(exception.StatusSuccess). SetService(exception.ServiceEvent). SetEndpoint(exception.EndpointEventServiceInfo). SetType(exception.TypeCommon). SetOriginal(exception.CommonSuccess). Throw(payload.Context), }, Data: &EventInfoResponse{ Name: event.Name, StartTime: event.StartTime, EndTime: event.EndTime, }, } return }