package controllers

import (
	"encoding/json"
	"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
	"opp/protocol"
	"opp/services/chance"
	"opp/services/message"
)

type H5Controller struct {
	BaseController
}

//Announcement  H5公告详情
//@router /announcement [post]
func (this *H5Controller) Announcement() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.RespH5(msg)
	}()
	var request *protocol.AnnouncementRequest
	if err := json.Unmarshal(this.ByteBody, &request); err != nil {
		log.Error(err)
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(message.H5Announcement(header, request))
}

//AnnouncementSubmit 完成公告操作
//@router /announcementSubmit [post]
func (this *H5Controller) AnnouncementSubmit() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.RespH5(msg)
	}()
	var request *protocol.AnnouncementSubmitRequest
	if err := json.Unmarshal(this.ByteBody, &request); err != nil {
		log.Error(err)
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(message.H5AnnouncementSubmit(header, request))
}

//ChanceExample 示例
//@router /chanceExample [post]
func (this *H5Controller) ChanceExample() {
	var msg *protocol.ResponseMessage
	defer func() {
		this.RespH5(msg)
	}()
	var request *protocol.ChanceExampleRequest
	if err := json.Unmarshal(this.ByteBody, &request); err != nil {
		log.Error(err)
		msg = protocol.BadRequestParam(1)
		return
	}
	if b, m := this.Valid(request); !b {
		msg = m
		return
	}
	header := GetRequestHeader(this.Ctx)
	msg = protocol.NewReturnResponse(chance.ChanceExample(header, request))
}