3
0

import code gen and generated files

This commit is contained in:
Tit Petric
2018-06-03 20:24:46 +02:00
parent 3d4d1775e9
commit 741acb6b4d
39 changed files with 1855 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
package sam
import (
"github.com/pkg/errors"
)
func (c *Channel) Edit(r *ChannelEditRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.edit")
}
func (c *Channel) Remove(r *ChannelRemoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.remove")
}
func (c *Channel) Read(r *ChannelReadRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.read")
}
func (c *Channel) Search(r *ChannelSearchRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.search")
}
func (c *Channel) Archive(r *ChannelArchiveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.archive")
}
func (c *Channel) Move(r *ChannelMoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.move")
}
func (c *Channel) Merge(r *ChannelMergeRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Channel.merge")
}
+36
View File
@@ -0,0 +1,36 @@
package sam
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
func (ch *ChannelHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := ChannelEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Edit(params) })
}
func (ch *ChannelHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := ChannelRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Remove(params) })
}
func (ch *ChannelHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := ChannelReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Read(params) })
}
func (ch *ChannelHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := ChannelSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Search(params) })
}
func (ch *ChannelHandlers) Archive(w http.ResponseWriter, r *http.Request) {
params := ChannelArchiveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Archive(params) })
}
func (ch *ChannelHandlers) Move(w http.ResponseWriter, r *http.Request) {
params := ChannelMoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Move(params) })
}
func (ch *ChannelHandlers) Merge(w http.ResponseWriter, r *http.Request) {
params := ChannelMergeRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Merge(params) })
}
+42
View File
@@ -0,0 +1,42 @@
package sam
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type ChannelHandlers struct {
*Channel
}
func (ChannelHandlers) new() *ChannelHandlers {
return &ChannelHandlers{
Channel{}.new(),
}
}
// Internal API interface
type ChannelAPI interface {
Edit(*ChannelEditRequest) (interface{}, error)
Remove(*ChannelRemoveRequest) (interface{}, error)
Read(*ChannelReadRequest) (interface{}, error)
Search(*ChannelSearchRequest) (interface{}, error)
Archive(*ChannelArchiveRequest) (interface{}, error)
Move(*ChannelMoveRequest) (interface{}, error)
Merge(*ChannelMergeRequest) (interface{}, error)
}
// HTTP API interface
type ChannelHandlersAPI interface {
Edit(http.ResponseWriter, *http.Request)
Remove(http.ResponseWriter, *http.Request)
Read(http.ResponseWriter, *http.Request)
Search(http.ResponseWriter, *http.Request)
Archive(http.ResponseWriter, *http.Request)
Move(http.ResponseWriter, *http.Request)
Merge(http.ResponseWriter, *http.Request)
}
// Compile time check to see if we implement the interfaces
var _ ChannelHandlersAPI = &ChannelHandlers{}
var _ ChannelAPI = &Channel{}
+205
View File
@@ -0,0 +1,205 @@
package sam
import (
"net/http"
"github.com/pkg/errors"
)
// Channel edit request parameters
type ChannelEditRequest struct {
id uint64
name string
topic string
}
func (ChannelEditRequest) new() *ChannelEditRequest {
return &ChannelEditRequest{}
}
func (c *ChannelEditRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.id = parseUInt64(post["id"])
c.name = post["name"]
c.topic = post["topic"]
return errors.New("Not implemented: ChannelEditRequest.Fill")
}
var _ RequestFiller = ChannelEditRequest{}.new()
// Channel remove request parameters
type ChannelRemoveRequest struct {
id uint64
}
func (ChannelRemoveRequest) new() *ChannelRemoveRequest {
return &ChannelRemoveRequest{}
}
func (c *ChannelRemoveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.id = parseUInt64(get["id"])
return errors.New("Not implemented: ChannelRemoveRequest.Fill")
}
var _ RequestFiller = ChannelRemoveRequest{}.new()
// Channel read request parameters
type ChannelReadRequest struct {
id uint64
}
func (ChannelReadRequest) new() *ChannelReadRequest {
return &ChannelReadRequest{}
}
func (c *ChannelReadRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.id = parseUInt64(get["id"])
return errors.New("Not implemented: ChannelReadRequest.Fill")
}
var _ RequestFiller = ChannelReadRequest{}.new()
// Channel search request parameters
type ChannelSearchRequest struct {
query string
}
func (ChannelSearchRequest) new() *ChannelSearchRequest {
return &ChannelSearchRequest{}
}
func (c *ChannelSearchRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.query = get["query"]
return errors.New("Not implemented: ChannelSearchRequest.Fill")
}
var _ RequestFiller = ChannelSearchRequest{}.new()
// Channel archive request parameters
type ChannelArchiveRequest struct {
id uint64
}
func (ChannelArchiveRequest) new() *ChannelArchiveRequest {
return &ChannelArchiveRequest{}
}
func (c *ChannelArchiveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.id = parseUInt64(post["id"])
return errors.New("Not implemented: ChannelArchiveRequest.Fill")
}
var _ RequestFiller = ChannelArchiveRequest{}.new()
// Channel move request parameters
type ChannelMoveRequest struct {
id uint64
}
func (ChannelMoveRequest) new() *ChannelMoveRequest {
return &ChannelMoveRequest{}
}
func (c *ChannelMoveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.id = parseUInt64(post["id"])
return errors.New("Not implemented: ChannelMoveRequest.Fill")
}
var _ RequestFiller = ChannelMoveRequest{}.new()
// Channel merge request parameters
type ChannelMergeRequest struct {
destination uint64
source uint64
}
func (ChannelMergeRequest) new() *ChannelMergeRequest {
return &ChannelMergeRequest{}
}
func (c *ChannelMergeRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
c.destination = parseUInt64(post["destination"])
c.source = parseUInt64(post["source"])
return errors.New("Not implemented: ChannelMergeRequest.Fill")
}
var _ RequestFiller = ChannelMergeRequest{}.new()
+37
View File
@@ -0,0 +1,37 @@
package sam
// Channels
type Channel struct {
ID uint64
Name string
Topic string
}
func (Channel) new() *Channel {
return &Channel{}
}
func (c *Channel) GetID() uint64 {
return c.ID
}
func (c *Channel) SetID(value uint64) *Channel {
c.ID = value
return c
}
func (c *Channel) GetName() string {
return c.Name
}
func (c *Channel) SetName(value string) *Channel {
c.Name = value
return c
}
func (c *Channel) GetTopic() string {
return c.Topic
}
func (c *Channel) SetTopic(value string) *Channel {
c.Topic = value
return c
}
+27
View File
@@ -0,0 +1,27 @@
package sam
import (
"github.com/pkg/errors"
)
func (m *Message) Edit(r *MessageEditRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.edit")
}
func (m *Message) Attach(r *MessageAttachRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.attach")
}
func (m *Message) Remove(r *MessageRemoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.remove")
}
func (m *Message) Read(r *MessageReadRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.read")
}
func (m *Message) Search(r *MessageSearchRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.search")
}
func (m *Message) Pin(r *MessagePinRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.pin")
}
func (m *Message) Flag(r *MessageFlagRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.flag")
}
+36
View File
@@ -0,0 +1,36 @@
package sam
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
func (mh *MessageHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := MessageEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Edit(params) })
}
func (mh *MessageHandlers) Attach(w http.ResponseWriter, r *http.Request) {
params := MessageAttachRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Attach(params) })
}
func (mh *MessageHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := MessageRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Remove(params) })
}
func (mh *MessageHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := MessageReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Read(params) })
}
func (mh *MessageHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := MessageSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Search(params) })
}
func (mh *MessageHandlers) Pin(w http.ResponseWriter, r *http.Request) {
params := MessagePinRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Pin(params) })
}
func (mh *MessageHandlers) Flag(w http.ResponseWriter, r *http.Request) {
params := MessageFlagRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Flag(params) })
}
+42
View File
@@ -0,0 +1,42 @@
package sam
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type MessageHandlers struct {
*Message
}
func (MessageHandlers) new() *MessageHandlers {
return &MessageHandlers{
Message{}.new(),
}
}
// Internal API interface
type MessageAPI interface {
Edit(*MessageEditRequest) (interface{}, error)
Attach(*MessageAttachRequest) (interface{}, error)
Remove(*MessageRemoveRequest) (interface{}, error)
Read(*MessageReadRequest) (interface{}, error)
Search(*MessageSearchRequest) (interface{}, error)
Pin(*MessagePinRequest) (interface{}, error)
Flag(*MessageFlagRequest) (interface{}, error)
}
// HTTP API interface
type MessageHandlersAPI interface {
Edit(http.ResponseWriter, *http.Request)
Attach(http.ResponseWriter, *http.Request)
Remove(http.ResponseWriter, *http.Request)
Read(http.ResponseWriter, *http.Request)
Search(http.ResponseWriter, *http.Request)
Pin(http.ResponseWriter, *http.Request)
Flag(http.ResponseWriter, *http.Request)
}
// Compile time check to see if we implement the interfaces
var _ MessageHandlersAPI = &MessageHandlers{}
var _ MessageAPI = &Message{}
+202
View File
@@ -0,0 +1,202 @@
package sam
import (
"net/http"
"github.com/pkg/errors"
)
// Message edit request parameters
type MessageEditRequest struct {
id uint64
channel_id uint64
contents string
}
func (MessageEditRequest) new() *MessageEditRequest {
return &MessageEditRequest{}
}
func (m *MessageEditRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
m.id = parseUInt64(post["id"])
m.channel_id = parseUInt64(post["channel_id"])
m.contents = post["contents"]
return errors.New("Not implemented: MessageEditRequest.Fill")
}
var _ RequestFiller = MessageEditRequest{}.new()
// Message attach request parameters
type MessageAttachRequest struct {
}
func (MessageAttachRequest) new() *MessageAttachRequest {
return &MessageAttachRequest{}
}
func (m *MessageAttachRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
return errors.New("Not implemented: MessageAttachRequest.Fill")
}
var _ RequestFiller = MessageAttachRequest{}.new()
// Message remove request parameters
type MessageRemoveRequest struct {
id uint64
}
func (MessageRemoveRequest) new() *MessageRemoveRequest {
return &MessageRemoveRequest{}
}
func (m *MessageRemoveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
m.id = parseUInt64(get["id"])
return errors.New("Not implemented: MessageRemoveRequest.Fill")
}
var _ RequestFiller = MessageRemoveRequest{}.new()
// Message read request parameters
type MessageReadRequest struct {
channel_id uint64
}
func (MessageReadRequest) new() *MessageReadRequest {
return &MessageReadRequest{}
}
func (m *MessageReadRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
m.channel_id = parseUInt64(post["channel_id"])
return errors.New("Not implemented: MessageReadRequest.Fill")
}
var _ RequestFiller = MessageReadRequest{}.new()
// Message search request parameters
type MessageSearchRequest struct {
query string
message_type string
}
func (MessageSearchRequest) new() *MessageSearchRequest {
return &MessageSearchRequest{}
}
func (m *MessageSearchRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
m.query = get["query"]
m.message_type = get["message_type"]
return errors.New("Not implemented: MessageSearchRequest.Fill")
}
var _ RequestFiller = MessageSearchRequest{}.new()
// Message pin request parameters
type MessagePinRequest struct {
id uint64
}
func (MessagePinRequest) new() *MessagePinRequest {
return &MessagePinRequest{}
}
func (m *MessagePinRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
m.id = parseUInt64(post["id"])
return errors.New("Not implemented: MessagePinRequest.Fill")
}
var _ RequestFiller = MessagePinRequest{}.new()
// Message flag request parameters
type MessageFlagRequest struct {
id uint64
}
func (MessageFlagRequest) new() *MessageFlagRequest {
return &MessageFlagRequest{}
}
func (m *MessageFlagRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
m.id = parseUInt64(post["id"])
return errors.New("Not implemented: MessageFlagRequest.Fill")
}
var _ RequestFiller = MessageFlagRequest{}.new()
+91
View File
@@ -0,0 +1,91 @@
package sam
// Messages
type Message struct {
Service string
Channel string
UserName string
UserID uint64
User *User
UserAvatar string
Message string
MessageID string
Type MessageType
}
func (Message) new() *Message {
return &Message{}
}
func (m *Message) GetService() string {
return m.Service
}
func (m *Message) SetService(value string) *Message {
m.Service = value
return m
}
func (m *Message) GetChannel() string {
return m.Channel
}
func (m *Message) SetChannel(value string) *Message {
m.Channel = value
return m
}
func (m *Message) GetUserName() string {
return m.UserName
}
func (m *Message) SetUserName(value string) *Message {
m.UserName = value
return m
}
func (m *Message) GetUserID() uint64 {
return m.UserID
}
func (m *Message) SetUserID(value uint64) *Message {
m.UserID = value
return m
}
func (m *Message) GetUser() *User {
return m.User
}
func (m *Message) SetUser(value *User) *Message {
m.User = value
return m
}
func (m *Message) GetUserAvatar() string {
return m.UserAvatar
}
func (m *Message) SetUserAvatar(value string) *Message {
m.UserAvatar = value
return m
}
func (m *Message) GetMessage() string {
return m.Message
}
func (m *Message) SetMessage(value string) *Message {
m.Message = value
return m
}
func (m *Message) GetMessageID() string {
return m.MessageID
}
func (m *Message) SetMessageID(value string) *Message {
m.MessageID = value
return m
}
func (m *Message) GetType() MessageType {
return m.Type
}
func (m *Message) SetType(value MessageType) *Message {
m.Type = value
return m
}
+22
View File
@@ -0,0 +1,22 @@
package sam
import (
"net/http"
)
// RequestFiller is an interface for typed request parameters
type RequestFiller interface {
Fill(r *http.Request) error
}
// MessageType is a type used to determine the CRUD state of a message.
type MessageType string
const (
// MessageTypeCreate is the message type for message creation.
MessageTypeCreate MessageType = "create"
// MessageTypeUpdate is the message type for message updates.
MessageTypeUpdate = "update"
// MessageTypeDelete is the message type for message deletion.
MessageTypeDelete = "delete"
)
+21
View File
@@ -0,0 +1,21 @@
package sam
import (
"github.com/pkg/errors"
)
func (o *Organisation) Edit(r *OrganisationEditRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Organisation.edit")
}
func (o *Organisation) Remove(r *OrganisationRemoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Organisation.remove")
}
func (o *Organisation) Read(r *OrganisationReadRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Organisation.read")
}
func (o *Organisation) Search(r *OrganisationSearchRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Organisation.search")
}
func (o *Organisation) Archive(r *OrganisationArchiveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Organisation.archive")
}
+28
View File
@@ -0,0 +1,28 @@
package sam
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
func (oh *OrganisationHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := OrganisationEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Edit(params) })
}
func (oh *OrganisationHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := OrganisationRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Remove(params) })
}
func (oh *OrganisationHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := OrganisationReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Read(params) })
}
func (oh *OrganisationHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := OrganisationSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Search(params) })
}
func (oh *OrganisationHandlers) Archive(w http.ResponseWriter, r *http.Request) {
params := OrganisationArchiveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Archive(params) })
}
+38
View File
@@ -0,0 +1,38 @@
package sam
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type OrganisationHandlers struct {
*Organisation
}
func (OrganisationHandlers) new() *OrganisationHandlers {
return &OrganisationHandlers{
Organisation{}.new(),
}
}
// Internal API interface
type OrganisationAPI interface {
Edit(*OrganisationEditRequest) (interface{}, error)
Remove(*OrganisationRemoveRequest) (interface{}, error)
Read(*OrganisationReadRequest) (interface{}, error)
Search(*OrganisationSearchRequest) (interface{}, error)
Archive(*OrganisationArchiveRequest) (interface{}, error)
}
// HTTP API interface
type OrganisationHandlersAPI interface {
Edit(http.ResponseWriter, *http.Request)
Remove(http.ResponseWriter, *http.Request)
Read(http.ResponseWriter, *http.Request)
Search(http.ResponseWriter, *http.Request)
Archive(http.ResponseWriter, *http.Request)
}
// Compile time check to see if we implement the interfaces
var _ OrganisationHandlersAPI = &OrganisationHandlers{}
var _ OrganisationAPI = &Organisation{}
+145
View File
@@ -0,0 +1,145 @@
package sam
import (
"net/http"
"github.com/pkg/errors"
)
// Organisation edit request parameters
type OrganisationEditRequest struct {
id uint64
name string
}
func (OrganisationEditRequest) new() *OrganisationEditRequest {
return &OrganisationEditRequest{}
}
func (o *OrganisationEditRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
o.id = parseUInt64(post["id"])
o.name = post["name"]
return errors.New("Not implemented: OrganisationEditRequest.Fill")
}
var _ RequestFiller = OrganisationEditRequest{}.new()
// Organisation remove request parameters
type OrganisationRemoveRequest struct {
id uint64
}
func (OrganisationRemoveRequest) new() *OrganisationRemoveRequest {
return &OrganisationRemoveRequest{}
}
func (o *OrganisationRemoveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
o.id = parseUInt64(get["id"])
return errors.New("Not implemented: OrganisationRemoveRequest.Fill")
}
var _ RequestFiller = OrganisationRemoveRequest{}.new()
// Organisation read request parameters
type OrganisationReadRequest struct {
id uint64
}
func (OrganisationReadRequest) new() *OrganisationReadRequest {
return &OrganisationReadRequest{}
}
func (o *OrganisationReadRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
o.id = parseUInt64(get["id"])
return errors.New("Not implemented: OrganisationReadRequest.Fill")
}
var _ RequestFiller = OrganisationReadRequest{}.new()
// Organisation search request parameters
type OrganisationSearchRequest struct {
query string
}
func (OrganisationSearchRequest) new() *OrganisationSearchRequest {
return &OrganisationSearchRequest{}
}
func (o *OrganisationSearchRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
o.query = get["query"]
return errors.New("Not implemented: OrganisationSearchRequest.Fill")
}
var _ RequestFiller = OrganisationSearchRequest{}.new()
// Organisation archive request parameters
type OrganisationArchiveRequest struct {
id uint64
}
func (OrganisationArchiveRequest) new() *OrganisationArchiveRequest {
return &OrganisationArchiveRequest{}
}
func (o *OrganisationArchiveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
o.id = parseUInt64(post["id"])
return errors.New("Not implemented: OrganisationArchiveRequest.Fill")
}
var _ RequestFiller = OrganisationArchiveRequest{}.new()
+28
View File
@@ -0,0 +1,28 @@
package sam
// Organisations
type Organisation struct {
ID uint64
Name string
}
func (Organisation) new() *Organisation {
return &Organisation{}
}
func (o *Organisation) GetID() uint64 {
return o.ID
}
func (o *Organisation) SetID(value uint64) *Organisation {
o.ID = value
return o
}
func (o *Organisation) GetName() string {
return o.Name
}
func (o *Organisation) SetName(value string) *Organisation {
o.Name = value
return o
}
+54
View File
@@ -0,0 +1,54 @@
package sam
import (
"github.com/go-chi/chi"
)
func MountRoutes(r chi.Router) {
organisation := OrganisationHandlers{}.new()
team := TeamHandlers{}.new()
channel := ChannelHandlers{}.new()
message := MessageHandlers{}.new()
user := UserHandlers{}.new()
websocket := WebsocketHandlers{}.new()
r.Route("/organisation", func(r chi.Router) {
r.Post("/edit", organisation.Edit)
r.Delete("/remove", organisation.Remove)
r.Get("/read", organisation.Read)
r.Get("/search", organisation.Search)
r.Post("/archive", organisation.Archive)
})
r.Route("/team", func(r chi.Router) {
r.Post("/edit", team.Edit)
r.Delete("/remove", team.Remove)
r.Get("/read", team.Read)
r.Get("/search", team.Search)
r.Post("/archive", team.Archive)
r.Post("/move", team.Move)
})
r.Route("/channel", func(r chi.Router) {
r.Post("/edit", channel.Edit)
r.Delete("/remove", channel.Remove)
r.Get("/read", channel.Read)
r.Get("/search", channel.Search)
r.Post("/archive", channel.Archive)
r.Post("/move", channel.Move)
r.Post("/merge", channel.Merge)
})
r.Route("/message", func(r chi.Router) {
r.Post("/edit", message.Edit)
r.Put("/attach", message.Attach)
r.Delete("/remove", message.Remove)
r.Get("/read", message.Read)
r.Get("/search", message.Search)
r.Post("/pin", message.Pin)
r.Post("/flag", message.Flag)
})
r.Route("/user", func(r chi.Router) {
r.Post("/login", user.Login)
r.Get("/search", user.Search)
})
r.Route("/websocket", func(r chi.Router) {
r.Get("/client", websocket.Client)
})
}
+24
View File
@@ -0,0 +1,24 @@
package sam
import (
"github.com/pkg/errors"
)
func (t *Team) Edit(r *TeamEditRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.edit")
}
func (t *Team) Remove(r *TeamRemoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.remove")
}
func (t *Team) Read(r *TeamReadRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.read")
}
func (t *Team) Search(r *TeamSearchRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.search")
}
func (t *Team) Archive(r *TeamArchiveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.archive")
}
func (t *Team) Move(r *TeamMoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.move")
}
+32
View File
@@ -0,0 +1,32 @@
package sam
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
func (th *TeamHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := TeamEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Edit(params) })
}
func (th *TeamHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := TeamRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Remove(params) })
}
func (th *TeamHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := TeamReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Read(params) })
}
func (th *TeamHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := TeamSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Search(params) })
}
func (th *TeamHandlers) Archive(w http.ResponseWriter, r *http.Request) {
params := TeamArchiveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Archive(params) })
}
func (th *TeamHandlers) Move(w http.ResponseWriter, r *http.Request) {
params := TeamMoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Move(params) })
}
+40
View File
@@ -0,0 +1,40 @@
package sam
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type TeamHandlers struct {
*Team
}
func (TeamHandlers) new() *TeamHandlers {
return &TeamHandlers{
Team{}.new(),
}
}
// Internal API interface
type TeamAPI interface {
Edit(*TeamEditRequest) (interface{}, error)
Remove(*TeamRemoveRequest) (interface{}, error)
Read(*TeamReadRequest) (interface{}, error)
Search(*TeamSearchRequest) (interface{}, error)
Archive(*TeamArchiveRequest) (interface{}, error)
Move(*TeamMoveRequest) (interface{}, error)
}
// HTTP API interface
type TeamHandlersAPI interface {
Edit(http.ResponseWriter, *http.Request)
Remove(http.ResponseWriter, *http.Request)
Read(http.ResponseWriter, *http.Request)
Search(http.ResponseWriter, *http.Request)
Archive(http.ResponseWriter, *http.Request)
Move(http.ResponseWriter, *http.Request)
}
// Compile time check to see if we implement the interfaces
var _ TeamHandlersAPI = &TeamHandlers{}
var _ TeamAPI = &Team{}
+176
View File
@@ -0,0 +1,176 @@
package sam
import (
"net/http"
"github.com/pkg/errors"
)
// Team edit request parameters
type TeamEditRequest struct {
id uint64
name string
members []uint64
}
func (TeamEditRequest) new() *TeamEditRequest {
return &TeamEditRequest{}
}
func (t *TeamEditRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
t.id = parseUInt64(post["id"])
t.name = post["name"]
return errors.New("Not implemented: TeamEditRequest.Fill")
}
var _ RequestFiller = TeamEditRequest{}.new()
// Team remove request parameters
type TeamRemoveRequest struct {
id uint64
}
func (TeamRemoveRequest) new() *TeamRemoveRequest {
return &TeamRemoveRequest{}
}
func (t *TeamRemoveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
t.id = parseUInt64(get["id"])
return errors.New("Not implemented: TeamRemoveRequest.Fill")
}
var _ RequestFiller = TeamRemoveRequest{}.new()
// Team read request parameters
type TeamReadRequest struct {
id uint64
}
func (TeamReadRequest) new() *TeamReadRequest {
return &TeamReadRequest{}
}
func (t *TeamReadRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
t.id = parseUInt64(get["id"])
return errors.New("Not implemented: TeamReadRequest.Fill")
}
var _ RequestFiller = TeamReadRequest{}.new()
// Team search request parameters
type TeamSearchRequest struct {
query string
}
func (TeamSearchRequest) new() *TeamSearchRequest {
return &TeamSearchRequest{}
}
func (t *TeamSearchRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
t.query = get["query"]
return errors.New("Not implemented: TeamSearchRequest.Fill")
}
var _ RequestFiller = TeamSearchRequest{}.new()
// Team archive request parameters
type TeamArchiveRequest struct {
id uint64
}
func (TeamArchiveRequest) new() *TeamArchiveRequest {
return &TeamArchiveRequest{}
}
func (t *TeamArchiveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
t.id = parseUInt64(post["id"])
return errors.New("Not implemented: TeamArchiveRequest.Fill")
}
var _ RequestFiller = TeamArchiveRequest{}.new()
// Team move request parameters
type TeamMoveRequest struct {
id uint64
organisation_id uint64
}
func (TeamMoveRequest) new() *TeamMoveRequest {
return &TeamMoveRequest{}
}
func (t *TeamMoveRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
t.id = parseUInt64(post["id"])
t.organisation_id = parseUInt64(post["organisation_id"])
return errors.New("Not implemented: TeamMoveRequest.Fill")
}
var _ RequestFiller = TeamMoveRequest{}.new()
+46
View File
@@ -0,0 +1,46 @@
package sam
// Teams
type Team struct {
ID uint64
Name string
MemberIDs []uint64 `json:"-"`
Members []User `json:",omitempty"`
}
func (Team) new() *Team {
return &Team{}
}
func (t *Team) GetID() uint64 {
return t.ID
}
func (t *Team) SetID(value uint64) *Team {
t.ID = value
return t
}
func (t *Team) GetName() string {
return t.Name
}
func (t *Team) SetName(value string) *Team {
t.Name = value
return t
}
func (t *Team) GetMemberIDs() []uint64 {
return t.MemberIDs
}
func (t *Team) SetMemberIDs(value []uint64) *Team {
t.MemberIDs = value
return t
}
func (t *Team) GetMembers() []User {
return t.Members
}
func (t *Team) SetMembers(value []User) *Team {
t.Members = value
return t
}
+11
View File
@@ -0,0 +1,11 @@
package {package}
import (
"github.com/pkg/errors"
)
{foreach $calls as $call}
func ({self} *{name}) {call.name|ucfirst}(r *{name}{call.name|ucfirst}Request) (interface{}, error) {
return nil, errors.New("Not implemented: {name}.{call.name}")
}
{/foreach}
+14
View File
@@ -0,0 +1,14 @@
package {package}
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
{foreach $calls as $call}
func ({self}h *{name}Handlers) {call.name|ucfirst}(w http.ResponseWriter, r *http.Request) {
params := {name}{call.name|ucfirst}Request{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return {self}h.{name}.{call.name|ucfirst}(params) })
}
{/foreach}
+34
View File
@@ -0,0 +1,34 @@
package {package}
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type {name}Handlers struct {
*{name}
}
func ({name}Handlers) new() *{name}Handlers {
return &{name}Handlers{
{name}{}.new(),
}
}
// Internal API interface
type {name}API interface {
{foreach $calls as $call}
{call.name|ucfirst}(*{name}{call.name|ucfirst}Request) (interface{}, error)
{/foreach}
}
// HTTP API interface
type {name}HandlersAPI interface {
{foreach $calls as $call}
{call.name|ucfirst}(http.ResponseWriter, *http.Request)
{/foreach}
}
// Compile time check to see if we implement the interfaces
var _ {name}HandlersAPI = &{name}Handlers{}
var _ {name}API = &{name}{}
+45
View File
@@ -0,0 +1,45 @@
package {package}
import (
"net/http"
"github.com/pkg/errors"
)
{foreach $calls as $call}
// {name} {call.name} request parameters
type {name}{call.name|ucfirst}Request struct {
{foreach $call.parameters as $params}
{foreach $params as $method => $param}
{param.name} {param.type}{newline}
{/foreach}
{/foreach}
}
func ({name}{call.name|ucfirst}Request) new() *{name}{call.name|ucfirst}Request {
return &{name}{call.name|ucfirst}Request{}
}
func ({self} *{name}{call.name|ucfirst}Request) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
{foreach $call.parameters as $method => $params}
{foreach $params as $param}
{if substr($param.type, 0, 2) !== '[]'}
{self}.{param.name} = {if $param.type !== "string"}{$parsers[$param.type]}({method|strtolower}["{param.name}"]){else}{method|strtolower}["{param.name}"]{/if}{newline}
{/if}
{/foreach}
{/foreach}
return errors.New("Not implemented: {name}{call.name|ucfirst}Request.Fill")
}
var _ RequestFiller = {name}{call.name|ucfirst}Request{}.new()
{/foreach}
+18
View File
@@ -0,0 +1,18 @@
package {package}
import (
"github.com/go-chi/chi"
)
func MountRoutes(r chi.Router) {
{foreach $apis as $api}
{api.entrypoint|strtolower} := {api.entrypoint|ucfirst}Handlers{}.new()
{/foreach}
{foreach $apis as $api}
r.Route("{api.path}", func(r chi.Router) {
{foreach $api.apis as $call}
r.{eval echo ucfirst(strtolower($call.method))}("{call.path}", {api.entrypoint|strtolower}.{call.name|ucfirst})
{/foreach}
})
{/foreach}
}
+30
View File
@@ -0,0 +1,30 @@
package {package}
{if strpos($name, "Literal") !== false}
{foreach $fields as $field}
{field}{newline}
{/foreach}
{else}
// {api.title}
type {name} struct {
{foreach $fields as $field}
{field.name} {field.type}{if $field.tag} `{$field.tag}`{/if}{newline}
{/foreach}
}
func ({name}) new() *{name} {
return &{name}{}
}
{/if}
{foreach $fields as $field}
func ({self} *{name}) Get{field.name}() {field.type} {
return {self}.{field.name}
}
func ({self} *{name}) Set{field.name}(value {field.type}) *{name} {
{self}.{field.name} = value
return {self}
}
{/foreach}
+12
View File
@@ -0,0 +1,12 @@
package sam
import (
"github.com/pkg/errors"
)
func (u *User) Login(r *UserLoginRequest) (interface{}, error) {
return nil, errors.New("Not implemented: User.login")
}
func (u *User) Search(r *UserSearchRequest) (interface{}, error) {
return nil, errors.New("Not implemented: User.search")
}
+16
View File
@@ -0,0 +1,16 @@
package sam
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
func (uh *UserHandlers) Login(w http.ResponseWriter, r *http.Request) {
params := UserLoginRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.User.Login(params) })
}
func (uh *UserHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := UserSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.User.Search(params) })
}
+32
View File
@@ -0,0 +1,32 @@
package sam
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type UserHandlers struct {
*User
}
func (UserHandlers) new() *UserHandlers {
return &UserHandlers{
User{}.new(),
}
}
// Internal API interface
type UserAPI interface {
Login(*UserLoginRequest) (interface{}, error)
Search(*UserSearchRequest) (interface{}, error)
}
// HTTP API interface
type UserHandlersAPI interface {
Login(http.ResponseWriter, *http.Request)
Search(http.ResponseWriter, *http.Request)
}
// Compile time check to see if we implement the interfaces
var _ UserHandlersAPI = &UserHandlers{}
var _ UserAPI = &User{}
+64
View File
@@ -0,0 +1,64 @@
package sam
import (
"net/http"
"github.com/pkg/errors"
)
// User login request parameters
type UserLoginRequest struct {
username string
password string
}
func (UserLoginRequest) new() *UserLoginRequest {
return &UserLoginRequest{}
}
func (u *UserLoginRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
u.username = post["username"]
u.password = post["password"]
return errors.New("Not implemented: UserLoginRequest.Fill")
}
var _ RequestFiller = UserLoginRequest{}.new()
// User search request parameters
type UserSearchRequest struct {
query string
}
func (UserSearchRequest) new() *UserSearchRequest {
return &UserSearchRequest{}
}
func (u *UserSearchRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
u.query = get["query"]
return errors.New("Not implemented: UserSearchRequest.Fill")
}
var _ RequestFiller = UserSearchRequest{}.new()
+37
View File
@@ -0,0 +1,37 @@
package sam
// Users
type User struct {
ID uint64
Username string
Password string `json:"-"`
}
func (User) new() *User {
return &User{}
}
func (u *User) GetID() uint64 {
return u.ID
}
func (u *User) SetID(value uint64) *User {
u.ID = value
return u
}
func (u *User) GetUsername() string {
return u.Username
}
func (u *User) SetUsername(value string) *User {
u.Username = value
return u
}
func (u *User) GetPassword() string {
return u.Password
}
func (u *User) SetPassword(value string) *User {
u.Password = value
return u
}
+33
View File
@@ -0,0 +1,33 @@
package sam
import (
"strconv"
)
// parseInt64 parses an string to int64
func parseInt64(s string) int64 {
if s == "" {
return 0
}
i, _ := strconv.ParseInt(s, 10, 64)
return i
}
// parseUInt64 parses an string to uint64
func parseUInt64(s string) uint64 {
if s == "" {
return 0
}
i, _ := strconv.ParseUint(s, 10, 64)
return i
}
// is checks if string s is contained in matches
func is(s string, matches ...string) bool {
for _, v := range matches {
if s == v {
return true
}
}
return false
}
+9
View File
@@ -0,0 +1,9 @@
package sam
import (
"github.com/pkg/errors"
)
func (w *Websocket) Client(r *WebsocketClientRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Websocket.client")
}
+12
View File
@@ -0,0 +1,12 @@
package sam
import (
"net/http"
"github.com/titpetric/factory/resputil"
)
func (wh *WebsocketHandlers) Client(w http.ResponseWriter, r *http.Request) {
params := WebsocketClientRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return wh.Websocket.Client(params) })
}
+30
View File
@@ -0,0 +1,30 @@
package sam
import (
"net/http"
)
// HTTP handlers are a superset of internal APIs
type WebsocketHandlers struct {
*Websocket
}
func (WebsocketHandlers) new() *WebsocketHandlers {
return &WebsocketHandlers{
Websocket{}.new(),
}
}
// Internal API interface
type WebsocketAPI interface {
Client(*WebsocketClientRequest) (interface{}, error)
}
// HTTP API interface
type WebsocketHandlersAPI interface {
Client(http.ResponseWriter, *http.Request)
}
// Compile time check to see if we implement the interfaces
var _ WebsocketHandlersAPI = &WebsocketHandlers{}
var _ WebsocketAPI = &Websocket{}
+31
View File
@@ -0,0 +1,31 @@
package sam
import (
"net/http"
"github.com/pkg/errors"
)
// Websocket client request parameters
type WebsocketClientRequest struct {
}
func (WebsocketClientRequest) new() *WebsocketClientRequest {
return &WebsocketClientRequest{}
}
func (w *WebsocketClientRequest) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
for name, param := range urlQuery {
get[name] = string(param[0])
}
postVars := r.Form
for name, param := range postVars {
post[name] = string(param[0])
}
return errors.New("Not implemented: WebsocketClientRequest.Fill")
}
var _ RequestFiller = WebsocketClientRequest{}.new()
+28
View File
@@ -0,0 +1,28 @@
package sam
// Websocket
type Websocket struct {
UserID uint64
User User
}
func (Websocket) new() *Websocket {
return &Websocket{}
}
func (w *Websocket) GetUserID() uint64 {
return w.UserID
}
func (w *Websocket) SetUserID(value uint64) *Websocket {
w.UserID = value
return w
}
func (w *Websocket) GetUser() User {
return w.User
}
func (w *Websocket) SetUser(value User) *Websocket {
w.User = value
return w
}