TechStacks!

<back to all web services

SessionInfo

User
Requires Authentication
The following routes are available for this service:
All Verbs/my-session
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports TechStacks.ServiceModel
Imports TechStacks.ServiceModel.Types

Namespace Global

    Namespace TechStacks.ServiceModel

        <ValidateRequest(Validator:="IsAuthenticated")>
        Public Partial Class SessionInfo
            Implements IGet
        End Class

        Public Partial Class SessionInfoResponse
            Public Overridable Property Created As Date
            Public Overridable Property Id As String
            Public Overridable Property ReferrerUrl As String
            Public Overridable Property UserAuthId As String
            Public Overridable Property UserAuthName As String
            Public Overridable Property UserName As String
            Public Overridable Property DisplayName As String
            Public Overridable Property FirstName As String
            Public Overridable Property LastName As String
            Public Overridable Property Email As String
            Public Overridable Property CreatedAt As Date
            Public Overridable Property LastModified As Date
            Public Overridable Property Roles As List(Of String)
            Public Overridable Property Permissions As List(Of String)
            Public Overridable Property IsAuthenticated As Boolean
            Public Overridable Property AuthProvider As String
            Public Overridable Property ProfileUrl As String
            Public Overridable Property GithubProfileUrl As String
            Public Overridable Property TwitterProfileUrl As String
            Public Overridable Property AccessToken As String
            Public Overridable Property AvatarUrl As String
            Public Overridable Property TechStacks As List(Of TechnologyStack)
            Public Overridable Property FavoriteTechStacks As List(Of TechnologyStack)
            Public Overridable Property FavoriteTechnologies As List(Of Technology)
            Public Overridable Property UserActivity As UserActivity
            Public Overridable Property Members As List(Of OrganizationMember)
            Public Overridable Property MemberInvites As List(Of OrganizationMemberInvite)
            Public Overridable Property Subscriptions As List(Of OrganizationSubscription)
            Public Overridable Property ResponseStatus As ResponseStatus
        End Class
    End Namespace

    Namespace TechStacks.ServiceModel.Types

        Public Partial Class OrganizationMember
            Public Overridable Property Id As Integer
            Public Overridable Property OrganizationId As Integer
            Public Overridable Property UserId As Integer
            Public Overridable Property UserName As String
            Public Overridable Property IsOwner As Boolean
            Public Overridable Property IsModerator As Boolean
            Public Overridable Property DenyAll As Boolean
            Public Overridable Property DenyPosts As Boolean
            Public Overridable Property DenyComments As Boolean
            Public Overridable Property Notes As String
        End Class

        Public Partial Class OrganizationMemberInvite
            Public Overridable Property Id As Integer
            Public Overridable Property OrganizationId As Integer
            Public Overridable Property UserId As Integer
            Public Overridable Property UserName As String
            Public Overridable Property Dismissed As Date?
        End Class

        Public Partial Class OrganizationSubscription
            Public Overridable Property Id As Long
            Public Overridable Property OrganizationId As Integer
            Public Overridable Property UserId As Integer
            Public Overridable Property UserName As String
            Public Overridable Property PostTypes As String()
            Public Overridable Property FrequencyDays As Integer?
            Public Overridable Property LastSyncedId As Long?
            Public Overridable Property LastSynced As Date?
            Public Overridable Property Created As Date
        End Class

        Public Partial Class Technology
            Inherits TechnologyBase
        End Class

        Public Partial Class TechnologyBase
            Public Overridable Property Id As Long
            Public Overridable Property Name As String
            Public Overridable Property VendorName As String
            Public Overridable Property VendorUrl As String
            Public Overridable Property ProductUrl As String
            Public Overridable Property LogoUrl As String
            Public Overridable Property Description As String
            Public Overridable Property Created As Date
            Public Overridable Property CreatedBy As String
            Public Overridable Property LastModified As Date
            Public Overridable Property LastModifiedBy As String
            Public Overridable Property OwnerId As String
            Public Overridable Property Slug As String
            Public Overridable Property LogoApproved As Boolean
            Public Overridable Property IsLocked As Boolean
            Public Overridable Property Tier As TechnologyTier
            Public Overridable Property LastStatusUpdate As Date?
            Public Overridable Property OrganizationId As Integer?
            Public Overridable Property CommentsPostId As Long?
            Public Overridable Property ViewCount As Integer
            Public Overridable Property FavCount As Integer
        End Class

        Public Partial Class TechnologyStack
            Inherits TechnologyStackBase
        End Class

        Public Partial Class TechnologyStackBase
            Public Overridable Property Id As Long
            Public Overridable Property Name As String
            Public Overridable Property VendorName As String
            Public Overridable Property Description As String
            Public Overridable Property AppUrl As String
            Public Overridable Property ScreenshotUrl As String
            Public Overridable Property Created As Date
            Public Overridable Property CreatedBy As String
            Public Overridable Property LastModified As Date
            Public Overridable Property LastModifiedBy As String
            Public Overridable Property IsLocked As Boolean
            Public Overridable Property OwnerId As String
            Public Overridable Property Slug As String
            <StringLength(Integer.MaxValue)>
            Public Overridable Property Details As String

            <StringLength(Integer.MaxValue)>
            Public Overridable Property DetailsHtml As String

            Public Overridable Property LastStatusUpdate As Date?
            Public Overridable Property OrganizationId As Integer?
            Public Overridable Property CommentsPostId As Long?
            Public Overridable Property ViewCount As Integer
            Public Overridable Property FavCount As Integer
        End Class

        Public Enum TechnologyTier
            ProgrammingLanguage
            Client
            Http
            Server
            Data
            SoftwareInfrastructure
            OperatingSystem
            HardwareInfrastructure
            ThirdPartyServices
        End Enum

        Public Partial Class UserActivity
            Public Overridable Property Id As Integer
            Public Overridable Property UserName As String
            Public Overridable Property Karma As Integer
            Public Overridable Property TechnologyCount As Integer
            Public Overridable Property TechStacksCount As Integer
            Public Overridable Property PostsCount As Integer
            Public Overridable Property PostUpVotes As Integer
            Public Overridable Property PostDownVotes As Integer
            Public Overridable Property CommentUpVotes As Integer
            Public Overridable Property CommentDownVotes As Integer
            Public Overridable Property PostCommentsCount As Integer
            Public Overridable Property PinnedCommentCount As Integer
            Public Overridable Property PostReportCount As Integer
            Public Overridable Property PostCommentReportCount As Integer
            Public Overridable Property Created As Date
            Public Overridable Property Modified As Date
        End Class
    End Namespace
End Namespace

VB.NET SessionInfo DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /my-session HTTP/1.1 
Host: techstacks.io 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	created: 0001-01-01,
	id: String,
	referrerUrl: String,
	userAuthId: String,
	userAuthName: String,
	userName: String,
	displayName: String,
	firstName: String,
	lastName: String,
	email: String,
	createdAt: 0001-01-01,
	lastModified: 0001-01-01,
	roles: 
	[
		String
	],
	permissions: 
	[
		String
	],
	isAuthenticated: False,
	authProvider: String,
	profileUrl: String,
	githubProfileUrl: String,
	twitterProfileUrl: String,
	accessToken: String,
	avatarUrl: String,
	techStacks: 
	[
		{
			id: 0,
			name: String,
			vendorName: String,
			description: String,
			appUrl: String,
			screenshotUrl: String,
			created: 0001-01-01,
			createdBy: String,
			lastModified: 0001-01-01,
			lastModifiedBy: String,
			isLocked: False,
			ownerId: String,
			slug: String,
			details: String,
			detailsHtml: String,
			lastStatusUpdate: 0001-01-01,
			organizationId: 0,
			commentsPostId: 0,
			viewCount: 0,
			favCount: 0
		}
	],
	favoriteTechStacks: 
	[
		{
			id: 0,
			name: String,
			vendorName: String,
			description: String,
			appUrl: String,
			screenshotUrl: String,
			created: 0001-01-01,
			createdBy: String,
			lastModified: 0001-01-01,
			lastModifiedBy: String,
			isLocked: False,
			ownerId: String,
			slug: String,
			details: String,
			detailsHtml: String,
			lastStatusUpdate: 0001-01-01,
			organizationId: 0,
			commentsPostId: 0,
			viewCount: 0,
			favCount: 0
		}
	],
	favoriteTechnologies: 
	[
		{
			id: 0,
			name: String,
			vendorName: String,
			vendorUrl: String,
			productUrl: String,
			logoUrl: String,
			description: String,
			created: 0001-01-01,
			createdBy: String,
			lastModified: 0001-01-01,
			lastModifiedBy: String,
			ownerId: String,
			slug: String,
			logoApproved: False,
			isLocked: False,
			tier: ProgrammingLanguage,
			lastStatusUpdate: 0001-01-01,
			organizationId: 0,
			commentsPostId: 0,
			viewCount: 0,
			favCount: 0
		}
	],
	userActivity: 
	{
		id: 0,
		userName: String,
		karma: 0,
		technologyCount: 0,
		techStacksCount: 0,
		postsCount: 0,
		postUpVotes: 0,
		postDownVotes: 0,
		commentUpVotes: 0,
		commentDownVotes: 0,
		postCommentsCount: 0,
		pinnedCommentCount: 0,
		postReportCount: 0,
		postCommentReportCount: 0,
		created: 0001-01-01,
		modified: 0001-01-01
	},
	members: 
	[
		{
			id: 0,
			organizationId: 0,
			userId: 0,
			userName: String,
			isOwner: False,
			isModerator: False,
			denyAll: False,
			denyPosts: False,
			denyComments: False,
			notes: String
		}
	],
	memberInvites: 
	[
		{
			id: 0,
			organizationId: 0,
			userId: 0,
			userName: String,
			dismissed: 0001-01-01
		}
	],
	subscriptions: 
	[
		{
			id: 0,
			organizationId: 0,
			userId: 0,
			userName: String,
			postTypes: 
			[
				String
			],
			frequencyDays: 0,
			lastSyncedId: 0,
			lastSynced: 0001-01-01,
			created: 0001-01-01
		}
	],
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}