package controllers

import (
	"net/http"
)

type AppController struct {
	MainController
}

func (server *AppController) Add() {
	//body := server.Ctx.Input.RequestBody
	//template := models.App{}
	//err := json.Unmarshal(body, &template) //解析body中数据
	//logs.Debug("appRequest", template)
	//if err != nil {
	//	server.respond(models.NoRequestBody, err.Error())
	//	return
	//}
	//
	//template.CreatedTime = time.Now().UTC()
	//template.UpdatedTime = template.CreatedTime
	//_, err = mongo.Insert(&template)
	//if err != nil {
	//	server.respond(models.BusinessFailed, err.Error())
	//	return
	//}
	server.respond(http.StatusOK, "")
}

func (server *AppController) Update() {
	//body := server.Ctx.Input.RequestBody
	//template := models.App{}
	//err := json.Unmarshal(body, &template) //解析body中数据
	//logs.Debug("appRequest", template)
	//if err != nil {
	//	server.respond(models.NoRequestBody, err.Error())
	//	return
	//}
	//
	//if template.Id == nil {
	//	server.respond(models.MissingParameter, "id param is null")
	//	return
	//}
	//template.UpdatedTime = time.Now().UTC()
	//
	//_, err = mongo.Update(template)
	//if err != nil {
	//	server.respond(models.BusinessFailed, err.Error())
	//	return
	//}
	server.respond(http.StatusOK, "")
}

func (server *AppController) Delete() {
	//body := server.Ctx.Input.RequestBody
	//template := models.App{}
	//err := json.Unmarshal(body, &template) //解析body中数据
	//logs.Debug("appRequest", template)
	//if err != nil {
	//	server.respond(models.NoRequestBody, err.Error())
	//	return
	//}
	//
	//if template.Id == nil {
	//	server.respond(models.MissingParameter, "id param is null")
	//	return
	//}
	//
	//template.UpdatedTime = time.Now().UTC()
	//template.Deleted = 1
	//_, err = mongo.Update(template)
	//if err != nil {
	//	server.respond(models.BusinessFailed, err.Error())
	//	return
	//}
	server.respond(http.StatusOK, "")
}

func (server *AppController) List() {
	//body := server.Ctx.Input.RequestBody
	//request := models.ListRequest{}
	//err := json.Unmarshal(body, &request) //解析body中数据
	//logs.Debug("appRequest", request)
	//if err != nil {
	//	server.respond(models.NoRequestBody, err.Error())
	//	return
	//}
	//
	//if request.Page == 0 {
	//	request.Page = 1
	//}
	//if request.Size == 0 {
	//	request.Size = 10
	//}
	//
	//total, data, err := mongo.Query("App", request.Page, request.Size, request.Filter)
	//if err != nil {
	//	logs.Info("List Error:", err)
	//	server.respond(models.BusinessFailed, err.Error())
	//}
	//
	//var apps []models.App
	//for _, bsonD := range data {
	//	var app models.App
	//	// 将 bson.D 转换为 bson.Raw
	//	bsonRaw, err := bson.Marshal(bsonD)
	//	if err != nil {
	//		server.respond(models.BusinessFailed, err.Error())
	//	}
	//	// 将 bson.Raw 解码为 User 结构体
	//	err = bson.Unmarshal(bsonRaw, &app)
	//	if err != nil {
	//		server.respond(models.BusinessFailed, err.Error())
	//	}
	//	apps = append(apps, app)
	//}
	//responseData := struct {
	//	Total int64       `json:"total"`
	//	Data  interface{} `json:"data,omitempty"`
	//}{
	//	Total: total,
	//	Data:  apps,
	//}
	server.respond(http.StatusOK, "")
}

//func (server *AppController) BindTemplate() {
//	body := server.Ctx.Input.RequestBody
//	request := models.AppTemplate{}
//	err := json.Unmarshal(body, &request) //解析body中数据
//	logs.Debug("appRequest", request)
//	if err != nil {
//		server.respond(models.NoRequestBody, err.Error())
//		return
//	}
//
//	if request.AppId == nil {
//		server.respond(models.MissingParameter, "app_id param is null")
//		return
//	}
//	if request.TemplateId == nil {
//		server.respond(models.MissingParameter, "template_id param is null")
//		return
//	}
//
//	request.CreatedTime = time.Now().UTC()
//	request.UpdatedTime = request.CreatedTime
//	_, err = mongo.Insert(&request)
//	if err != nil {
//		server.respond(models.BusinessFailed, err.Error())
//		return
//	}
//	server.respond(http.StatusOK, "")
//}
