package service_event import ( "context" "nixcn-cms/data" "nixcn-cms/internal/exception" "nixcn-cms/service/shared" "github.com/google/uuid" ) type EventInfoData struct { EventId uuid.UUID `json:"event_id"` } type EventInfoPayload struct { Context context.Context Data *EventInfoData } type EventInfoResult struct { Common shared.CommonResult Data *data.EventIndexDoc } 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: &data.EventIndexDoc{ EventId: event.EventId.String(), Name: event.Name, Type: event.Type, Description: event.Description, StartTime: event.StartTime, EndTime: event.EndTime, Thumbnail: event.Thumbnail, }, } return }