/*
 *    Copyright (C) 2017-2019 Christian Muehlhaeuser
 *
 *    This program is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU Affero General Public License as published
 *    by the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU Affero General Public License for more details.
 *
 *    You should have received a copy of the GNU Affero General Public License
 *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *    Authors:
 *      Christian Muehlhaeuser <muesli@gmail.com>
 */

package logs

import (
	"github.com/emicklei/go-restful"
	"github.com/muesli/smolder"
)

// LogResource is the resource responsible for /logs
type LogResource struct {
	smolder.Resource
}

var (
	// _ smolder.GetIDSupported = &LogResource{}
	_ smolder.GetSupported = &LogResource{}
)

// Register this resource with the container to setup all the routes
func (r *LogResource) Register(container *restful.Container, config smolder.APIConfig, context smolder.APIContextFactory) {
	r.Name = "LogResource"
	r.TypeName = "log"
	r.Endpoint = "logs"
	r.Doc = "Manage logs"

	r.Config = config
	r.Context = context

	r.Init(container, r)
}

// Returns returns the model that will be returned
func (r *LogResource) Returns() interface{} {
	return LogResponse{}
}
