3
0

Codegen/spec cleanup (remove struct)

This commit is contained in:
Denis Arh 2018-08-05 23:31:03 +02:00
parent cd85f1b608
commit 3009d20fcc
8 changed files with 7 additions and 499 deletions

View File

@ -97,7 +97,7 @@ foreach ($generators as $generator) {
$filename = str_replace("..", ".", strtolower($name) . "." . $type . ".go");
$tpl->load("http_$type.tpl");
$tpl->assign("parsers",
$tpl->assign("parsers",
$tpl->assign("package", $api['package']);
$tpl->assign("name", $name);
$tpl->assign("self", strtolower(substr($name, 0, 1)));

View File

@ -6,22 +6,6 @@
"path": "/organisations",
"entrypoint": "organisation",
"authentication": ["Client ID", "Session ID"],
"struct": [
{
"name": "Organisation",
"imports": ["time"],
"fields": [
{ "name": "ID", "type": "uint64" },
{ "name": "FQN", "type": "string", "dbname": "fqn" },
{ "name": "Name", "type": "string" },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true },
{ "name": "UpdatedAt", "type": "*time.Time", "tag": "json:\"updated_at,omitempty\"", "complex": true },
{ "name": "ArchivedAt", "type": "*time.Time", "tag": "json:\"archived_at,omitempty\"", "complex": true },
{ "name": "DeletedAt", "type": "*time.Time", "tag": "json:\"deleted_at,omitempty\"", "complex": true }
]
}
],
"apis": [
{
"name": "list",
@ -101,22 +85,6 @@
"path": "/teams",
"entrypoint": "team",
"authentication": ["Client ID", "Session ID"],
"struct": [
{
"name": "Team",
"imports": [ "time" ],
"fields": [
{ "type": "uint64", "name": "ID" },
{ "type": "string", "name": "Name" },
{ "type": "string", "name": "Handle" },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true },
{ "name": "UpdatedAt", "type": "*time.Time", "tag": "json:\"updated_at,omitempty\"", "complex": true },
{ "name": "ArchivedAt", "type": "*time.Time", "tag": "json:\"archived_at,omitempty\"", "complex": true },
{ "name": "DeletedAt", "type": "*time.Time", "tag": "json:\"deleted_at,omitempty\"", "complex": true }
]
}
],
"apis": [
{
"name": "list",
@ -226,27 +194,6 @@
"entrypoint": "channel",
"path": "/channels",
"authentication": ["Client ID", "Session ID"],
"struct": [
{
"name": "Channel",
"imports": [
"time",
"encoding/json"
],
"fields": [
{ "type": "uint64", "name": "ID" },
{ "type": "string", "name": "Name" },
{ "type": "string", "name": "Topic", "dbname": "-" },
{ "type": "json.RawMessage", "name": "Meta", "complex": true},
{ "type": "uint64", "name": "LastMessageID", "tag": "json:\",omitempty\"", "dbname": "rel_last_message" },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true },
{ "name": "UpdatedAt", "type": "*time.Time", "tag": "json:\"updated_at,omitempty\"", "complex": true },
{ "name": "ArchivedAt", "type": "*time.Time", "tag": "json:\"archived_at,omitempty\"", "complex": true },
{ "name": "DeletedAt", "type": "*time.Time", "tag": "json:\"deleted_at,omitempty\"", "complex": true }
]
}
],
"apis": [
{
"name": "list",
@ -371,58 +318,6 @@
},
"entrypoint": "message",
"authentication": ["Client ID", "Session ID"],
"struct": [
{
"name": "Message",
"imports": ["time"],
"fields": [
{ "name": "ID", "type": "uint64" },
{ "name": "Type", "type": "string" },
{ "name": "Message", "type": "string" },
{ "name": "UserID", "type": "uint64", "dbname": "rel_user" },
{ "name": "ChannelID", "type": "uint64", "dbname": "rel_channel"},
{ "name": "ReplyTo", "type": "uint64", "dbname": "reply_to" },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true },
{ "name": "UpdatedAt", "type": "*time.Time", "tag": "json:\"updated_at,omitempty\"", "complex": true },
{ "name": "DeletedAt", "type": "*time.Time", "tag": "json:\"deleted_at,omitempty\"", "complex": true }
]
},
{
"name": "Reaction",
"imports": ["time"],
"fields": [
{ "name": "ID", "type": "uint64" },
{ "name": "UserID", "type": "uint64", "dbname": "rel_user" },
{ "name": "MessageID", "type": "uint64", "dbname": "rel_message"},
{ "name": "ChannelID", "type": "uint64", "dbname": "rel_channel"},
{ "name": "Reaction", "type": "string" },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true }
]
},
{
"name": "Attachment",
"imports": ["time", "encoding/json"],
"fields": [
{ "name": "ID", "type": "uint64" },
{ "name": "UserID", "type": "uint64", "dbname": "rel_user" },
{ "name": "MessageID", "type": "uint64", "dbname": "rel_message"},
{ "name": "ChannelID", "type": "uint64", "dbname": "rel_channel"},
{ "name": "Attachment", "type": "json.RawMessage" , "complex": true},
{ "name": "Url", "type": "string" },
{ "name": "PreviewUrl", "type": "string" },
{ "name": "Size", "type": "uint" },
{ "name": "Mimetype", "type": "string" },
{ "name": "Name", "type": "string" },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true },
{ "name": "UpdatedAt", "type": "*time.Time", "tag": "json:\"updated_at,omitempty\"", "complex": true },
{ "name": "DeletedAt", "type": "*time.Time", "tag": "json:\"deleted_at,omitempty\"", "complex": true }
]
}
],
"apis": [
{
"name": "create",
@ -579,24 +474,6 @@
"path": "/users",
"entrypoint": "user",
"authentication": ["Client ID", "Session ID"],
"struct": [
{
"name": "User",
"imports": ["time"],
"fields": [
{ "type": "uint64", "name": "ID" },
{ "type": "string", "name": "Username" },
{ "type": "interface{}", "name": "Meta", "tag": "json:\"-\"" },
{ "type": "uint64", "name": "OrganisationID", "dbname": "rel_organisation" },
{ "type": "[]byte", "name": "Password", "tag": "json:\"-\"", "complex": true },
{ "name": "CreatedAt", "type": "time.Time", "tag": "json:\"created_at,omitempty\"", "complex": true },
{ "name": "UpdatedAt", "type": "*time.Time", "tag": "json:\"updated_at,omitempty\"", "complex": true },
{ "name": "SuspendedAt","type": "*time.Time", "tag": "json:\"suspended_at,omitempty\"","complex": true },
{ "name": "DeletedAt", "type": "*time.Time", "tag": "json:\"deleted_at,omitempty\"", "complex": true }
]
}
],
"apis": [
{
"name": "search",
@ -629,7 +506,6 @@
"package": "sam",
"path": "/auth",
"entrypoint": "auth",
"struct": [],
"authentication": [],
"apis": [
{

View File

@ -2,7 +2,7 @@
"Title": "Authentication",
"Package": "sam",
"Interface": "Auth",
"Struct": [],
"Struct": null,
"Parameters": null,
"Protocol": "",
"Authentication": [],

View File

@ -3,65 +3,7 @@
"Description": "A channel is a representation of a sequence of messages. It has meta data like channel subject. Channels may be public, private or direct (between two users).",
"Package": "sam",
"Interface": "Channel",
"Struct": [
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"name": "Name",
"type": "string"
},
{
"dbname": "-",
"name": "Topic",
"type": "string"
},
{
"complex": true,
"name": "Meta",
"type": "json.RawMessage"
},
{
"dbname": "rel_last_message",
"name": "LastMessageID",
"tag": "json:\",omitempty\"",
"type": "uint64"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
},
{
"complex": true,
"name": "UpdatedAt",
"tag": "json:\"updated_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "ArchivedAt",
"tag": "json:\"archived_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "DeletedAt",
"tag": "json:\"deleted_at,omitempty\"",
"type": "*time.Time"
}
],
"imports": [
"time",
"encoding/json"
],
"name": "Channel"
}
],
"Struct": null,
"Parameters": null,
"Protocol": "",
"Authentication": [

View File

@ -2,169 +2,7 @@
"Title": "Messages",
"Package": "sam",
"Interface": "Message",
"Struct": [
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"name": "Type",
"type": "string"
},
{
"name": "Message",
"type": "string"
},
{
"dbname": "rel_user",
"name": "UserID",
"type": "uint64"
},
{
"dbname": "rel_channel",
"name": "ChannelID",
"type": "uint64"
},
{
"dbname": "reply_to",
"name": "ReplyTo",
"type": "uint64"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
},
{
"complex": true,
"name": "UpdatedAt",
"tag": "json:\"updated_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "DeletedAt",
"tag": "json:\"deleted_at,omitempty\"",
"type": "*time.Time"
}
],
"imports": [
"time"
],
"name": "Message"
},
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"dbname": "rel_user",
"name": "UserID",
"type": "uint64"
},
{
"dbname": "rel_message",
"name": "MessageID",
"type": "uint64"
},
{
"dbname": "rel_channel",
"name": "ChannelID",
"type": "uint64"
},
{
"name": "Reaction",
"type": "string"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
}
],
"imports": [
"time"
],
"name": "Reaction"
},
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"dbname": "rel_user",
"name": "UserID",
"type": "uint64"
},
{
"dbname": "rel_message",
"name": "MessageID",
"type": "uint64"
},
{
"dbname": "rel_channel",
"name": "ChannelID",
"type": "uint64"
},
{
"complex": true,
"name": "Attachment",
"type": "json.RawMessage"
},
{
"name": "Url",
"type": "string"
},
{
"name": "PreviewUrl",
"type": "string"
},
{
"name": "Size",
"type": "uint"
},
{
"name": "Mimetype",
"type": "string"
},
{
"name": "Name",
"type": "string"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
},
{
"complex": true,
"name": "UpdatedAt",
"tag": "json:\"updated_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "DeletedAt",
"tag": "json:\"deleted_at,omitempty\"",
"type": "*time.Time"
}
],
"imports": [
"time",
"encoding/json"
],
"name": "Attachment"
}
],
"Struct": null,
"Parameters": {
"path": [
{

View File

@ -3,53 +3,7 @@
"Description": "Organisations represent a top-level grouping entity. There may be many organisations defined in a single deployment.",
"Package": "sam",
"Interface": "Organisation",
"Struct": [
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"dbname": "fqn",
"name": "FQN",
"type": "string"
},
{
"name": "Name",
"type": "string"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
},
{
"complex": true,
"name": "UpdatedAt",
"tag": "json:\"updated_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "ArchivedAt",
"tag": "json:\"archived_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "DeletedAt",
"tag": "json:\"deleted_at,omitempty\"",
"type": "*time.Time"
}
],
"imports": [
"time"
],
"name": "Organisation"
}
],
"Struct": null,
"Parameters": null,
"Protocol": "",
"Authentication": [

View File

@ -3,52 +3,7 @@
"Description": "An organisation may have many teams. Teams may have many channels available. Access to channels may be shared between teams.",
"Package": "sam",
"Interface": "Team",
"Struct": [
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"name": "Name",
"type": "string"
},
{
"name": "Handle",
"type": "string"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
},
{
"complex": true,
"name": "UpdatedAt",
"tag": "json:\"updated_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "ArchivedAt",
"tag": "json:\"archived_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "DeletedAt",
"tag": "json:\"deleted_at,omitempty\"",
"type": "*time.Time"
}
],
"imports": [
"time"
],
"name": "Team"
}
],
"Struct": null,
"Parameters": null,
"Protocol": "",
"Authentication": [

View File

@ -2,64 +2,7 @@
"Title": "Users",
"Package": "sam",
"Interface": "User",
"Struct": [
{
"fields": [
{
"name": "ID",
"type": "uint64"
},
{
"name": "Username",
"type": "string"
},
{
"name": "Meta",
"tag": "json:\"-\"",
"type": "interface{}"
},
{
"dbname": "rel_organisation",
"name": "OrganisationID",
"type": "uint64"
},
{
"complex": true,
"name": "Password",
"tag": "json:\"-\"",
"type": "[]byte"
},
{
"complex": true,
"name": "CreatedAt",
"tag": "json:\"created_at,omitempty\"",
"type": "time.Time"
},
{
"complex": true,
"name": "UpdatedAt",
"tag": "json:\"updated_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "SuspendedAt",
"tag": "json:\"suspended_at,omitempty\"",
"type": "*time.Time"
},
{
"complex": true,
"name": "DeletedAt",
"tag": "json:\"deleted_at,omitempty\"",
"type": "*time.Time"
}
],
"imports": [
"time"
],
"name": "User"
}
],
"Struct": null,
"Parameters": null,
"Protocol": "",
"Authentication": [