TechStacks!

<back to all web services

SessionInfo

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

namespace TechStacks.ServiceModel
{
    [ValidateRequest("IsAuthenticated")]
    public partial class SessionInfo
        : IGet
    {
    }

    public partial class SessionInfoResponse
    {
        public SessionInfoResponse()
        {
            Roles = new List<string>{};
            Permissions = new List<string>{};
            TechStacks = new List<TechnologyStack>{};
            FavoriteTechStacks = new List<TechnologyStack>{};
            FavoriteTechnologies = new List<Technology>{};
            Members = new List<OrganizationMember>{};
            MemberInvites = new List<OrganizationMemberInvite>{};
            Subscriptions = new List<OrganizationSubscription>{};
        }

        public virtual DateTime Created { get; set; }
        public virtual string Id { get; set; }
        public virtual string ReferrerUrl { get; set; }
        public virtual string UserAuthId { get; set; }
        public virtual string UserAuthName { get; set; }
        public virtual string UserName { get; set; }
        public virtual string DisplayName { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string Email { get; set; }
        public virtual DateTime CreatedAt { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual List<string> Roles { get; set; }
        public virtual List<string> Permissions { get; set; }
        public virtual bool IsAuthenticated { get; set; }
        public virtual string AuthProvider { get; set; }
        public virtual string ProfileUrl { get; set; }
        public virtual string GithubProfileUrl { get; set; }
        public virtual string TwitterProfileUrl { get; set; }
        public virtual string AccessToken { get; set; }
        public virtual string AvatarUrl { get; set; }
        public virtual List<TechnologyStack> TechStacks { get; set; }
        public virtual List<TechnologyStack> FavoriteTechStacks { get; set; }
        public virtual List<Technology> FavoriteTechnologies { get; set; }
        public virtual UserActivity UserActivity { get; set; }
        public virtual List<OrganizationMember> Members { get; set; }
        public virtual List<OrganizationMemberInvite> MemberInvites { get; set; }
        public virtual List<OrganizationSubscription> Subscriptions { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
    }

}

namespace TechStacks.ServiceModel.Types
{
    public partial class OrganizationMember
    {
        public virtual int Id { get; set; }
        public virtual int OrganizationId { get; set; }
        public virtual int UserId { get; set; }
        public virtual string UserName { get; set; }
        public virtual bool IsOwner { get; set; }
        public virtual bool IsModerator { get; set; }
        public virtual bool DenyAll { get; set; }
        public virtual bool DenyPosts { get; set; }
        public virtual bool DenyComments { get; set; }
        public virtual string Notes { get; set; }
    }

    public partial class OrganizationMemberInvite
    {
        public virtual int Id { get; set; }
        public virtual int OrganizationId { get; set; }
        public virtual int UserId { get; set; }
        public virtual string UserName { get; set; }
        public virtual DateTime? Dismissed { get; set; }
    }

    public partial class OrganizationSubscription
    {
        public OrganizationSubscription()
        {
            PostTypes = new string[]{};
        }

        public virtual long Id { get; set; }
        public virtual int OrganizationId { get; set; }
        public virtual int UserId { get; set; }
        public virtual string UserName { get; set; }
        public virtual string[] PostTypes { get; set; }
        public virtual int? FrequencyDays { get; set; }
        public virtual long? LastSyncedId { get; set; }
        public virtual DateTime? LastSynced { get; set; }
        public virtual DateTime Created { get; set; }
    }

    public partial class Technology
        : TechnologyBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string VendorUrl { get; set; }
        public virtual string ProductUrl { get; set; }
        public virtual string LogoUrl { get; set; }
        public virtual string Description { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        public virtual bool LogoApproved { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual TechnologyTier Tier { get; set; }
        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class TechnologyBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string VendorUrl { get; set; }
        public virtual string ProductUrl { get; set; }
        public virtual string LogoUrl { get; set; }
        public virtual string Description { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        public virtual bool LogoApproved { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual TechnologyTier Tier { get; set; }
        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class TechnologyStack
        : TechnologyStackBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string Description { get; set; }
        public virtual string AppUrl { get; set; }
        public virtual string ScreenshotUrl { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        [StringLength(int.MaxValue)]
        public virtual string Details { get; set; }

        [StringLength(int.MaxValue)]
        public virtual string DetailsHtml { get; set; }

        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class TechnologyStackBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string Description { get; set; }
        public virtual string AppUrl { get; set; }
        public virtual string ScreenshotUrl { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        [StringLength(int.MaxValue)]
        public virtual string Details { get; set; }

        [StringLength(int.MaxValue)]
        public virtual string DetailsHtml { get; set; }

        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public enum TechnologyTier
    {
        ProgrammingLanguage,
        Client,
        Http,
        Server,
        Data,
        SoftwareInfrastructure,
        OperatingSystem,
        HardwareInfrastructure,
        ThirdPartyServices,
    }

    public partial class UserActivity
    {
        public virtual int Id { get; set; }
        public virtual string UserName { get; set; }
        public virtual int Karma { get; set; }
        public virtual int TechnologyCount { get; set; }
        public virtual int TechStacksCount { get; set; }
        public virtual int PostsCount { get; set; }
        public virtual int PostUpVotes { get; set; }
        public virtual int PostDownVotes { get; set; }
        public virtual int CommentUpVotes { get; set; }
        public virtual int CommentDownVotes { get; set; }
        public virtual int PostCommentsCount { get; set; }
        public virtual int PinnedCommentCount { get; set; }
        public virtual int PostReportCount { get; set; }
        public virtual int PostCommentReportCount { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual DateTime Modified { get; set; }
    }

}

C# SessionInfo DTOs

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

HTTP + XML

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: application/xml
Content-Type: application/xml
Content-Length: length

<SessionInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel" />
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<SessionInfoResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel">
  <AccessToken>String</AccessToken>
  <AuthProvider>String</AuthProvider>
  <AvatarUrl>String</AvatarUrl>
  <Created>0001-01-01T00:00:00</Created>
  <CreatedAt>0001-01-01T00:00:00</CreatedAt>
  <DisplayName>String</DisplayName>
  <Email>String</Email>
  <FavoriteTechStacks xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:TechnologyStack>
      <d2p1:AppUrl>String</d2p1:AppUrl>
      <d2p1:CommentsPostId>0</d2p1:CommentsPostId>
      <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
      <d2p1:CreatedBy>String</d2p1:CreatedBy>
      <d2p1:Description>String</d2p1:Description>
      <d2p1:Details>String</d2p1:Details>
      <d2p1:DetailsHtml>String</d2p1:DetailsHtml>
      <d2p1:FavCount>0</d2p1:FavCount>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:IsLocked>false</d2p1:IsLocked>
      <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
      <d2p1:LastModifiedBy>String</d2p1:LastModifiedBy>
      <d2p1:LastStatusUpdate>0001-01-01T00:00:00</d2p1:LastStatusUpdate>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:OrganizationId>0</d2p1:OrganizationId>
      <d2p1:OwnerId>String</d2p1:OwnerId>
      <d2p1:ScreenshotUrl>String</d2p1:ScreenshotUrl>
      <d2p1:Slug>String</d2p1:Slug>
      <d2p1:VendorName>String</d2p1:VendorName>
      <d2p1:ViewCount>0</d2p1:ViewCount>
    </d2p1:TechnologyStack>
  </FavoriteTechStacks>
  <FavoriteTechnologies xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:Technology>
      <d2p1:CommentsPostId>0</d2p1:CommentsPostId>
      <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
      <d2p1:CreatedBy>String</d2p1:CreatedBy>
      <d2p1:Description>String</d2p1:Description>
      <d2p1:FavCount>0</d2p1:FavCount>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:IsLocked>false</d2p1:IsLocked>
      <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
      <d2p1:LastModifiedBy>String</d2p1:LastModifiedBy>
      <d2p1:LastStatusUpdate>0001-01-01T00:00:00</d2p1:LastStatusUpdate>
      <d2p1:LogoApproved>false</d2p1:LogoApproved>
      <d2p1:LogoUrl>String</d2p1:LogoUrl>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:OrganizationId>0</d2p1:OrganizationId>
      <d2p1:OwnerId>String</d2p1:OwnerId>
      <d2p1:ProductUrl>String</d2p1:ProductUrl>
      <d2p1:Slug>String</d2p1:Slug>
      <d2p1:Tier>ProgrammingLanguage</d2p1:Tier>
      <d2p1:VendorName>String</d2p1:VendorName>
      <d2p1:VendorUrl>String</d2p1:VendorUrl>
      <d2p1:ViewCount>0</d2p1:ViewCount>
    </d2p1:Technology>
  </FavoriteTechnologies>
  <FirstName>String</FirstName>
  <GithubProfileUrl>String</GithubProfileUrl>
  <Id>String</Id>
  <IsAuthenticated>false</IsAuthenticated>
  <LastModified>0001-01-01T00:00:00</LastModified>
  <LastName>String</LastName>
  <MemberInvites xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:OrganizationMemberInvite>
      <d2p1:Dismissed>0001-01-01T00:00:00</d2p1:Dismissed>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:OrganizationId>0</d2p1:OrganizationId>
      <d2p1:UserId>0</d2p1:UserId>
      <d2p1:UserName>String</d2p1:UserName>
    </d2p1:OrganizationMemberInvite>
  </MemberInvites>
  <Members xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:OrganizationMember>
      <d2p1:DenyAll>false</d2p1:DenyAll>
      <d2p1:DenyComments>false</d2p1:DenyComments>
      <d2p1:DenyPosts>false</d2p1:DenyPosts>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:IsModerator>false</d2p1:IsModerator>
      <d2p1:IsOwner>false</d2p1:IsOwner>
      <d2p1:Notes>String</d2p1:Notes>
      <d2p1:OrganizationId>0</d2p1:OrganizationId>
      <d2p1:UserId>0</d2p1:UserId>
      <d2p1:UserName>String</d2p1:UserName>
    </d2p1:OrganizationMember>
  </Members>
  <Permissions xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>String</d2p1:string>
  </Permissions>
  <ProfileUrl>String</ProfileUrl>
  <ReferrerUrl>String</ReferrerUrl>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <Roles xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>String</d2p1:string>
  </Roles>
  <Subscriptions xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:OrganizationSubscription>
      <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
      <d2p1:FrequencyDays>0</d2p1:FrequencyDays>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:LastSynced>0001-01-01T00:00:00</d2p1:LastSynced>
      <d2p1:LastSyncedId>0</d2p1:LastSyncedId>
      <d2p1:OrganizationId>0</d2p1:OrganizationId>
      <d2p1:PostTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>String</d4p1:string>
      </d2p1:PostTypes>
      <d2p1:UserId>0</d2p1:UserId>
      <d2p1:UserName>String</d2p1:UserName>
    </d2p1:OrganizationSubscription>
  </Subscriptions>
  <TechStacks xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:TechnologyStack>
      <d2p1:AppUrl>String</d2p1:AppUrl>
      <d2p1:CommentsPostId>0</d2p1:CommentsPostId>
      <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
      <d2p1:CreatedBy>String</d2p1:CreatedBy>
      <d2p1:Description>String</d2p1:Description>
      <d2p1:Details>String</d2p1:Details>
      <d2p1:DetailsHtml>String</d2p1:DetailsHtml>
      <d2p1:FavCount>0</d2p1:FavCount>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:IsLocked>false</d2p1:IsLocked>
      <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
      <d2p1:LastModifiedBy>String</d2p1:LastModifiedBy>
      <d2p1:LastStatusUpdate>0001-01-01T00:00:00</d2p1:LastStatusUpdate>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:OrganizationId>0</d2p1:OrganizationId>
      <d2p1:OwnerId>String</d2p1:OwnerId>
      <d2p1:ScreenshotUrl>String</d2p1:ScreenshotUrl>
      <d2p1:Slug>String</d2p1:Slug>
      <d2p1:VendorName>String</d2p1:VendorName>
      <d2p1:ViewCount>0</d2p1:ViewCount>
    </d2p1:TechnologyStack>
  </TechStacks>
  <TwitterProfileUrl>String</TwitterProfileUrl>
  <UserActivity xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">
    <d2p1:CommentDownVotes>0</d2p1:CommentDownVotes>
    <d2p1:CommentUpVotes>0</d2p1:CommentUpVotes>
    <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
    <d2p1:Id>0</d2p1:Id>
    <d2p1:Karma>0</d2p1:Karma>
    <d2p1:Modified>0001-01-01T00:00:00</d2p1:Modified>
    <d2p1:PinnedCommentCount>0</d2p1:PinnedCommentCount>
    <d2p1:PostCommentReportCount>0</d2p1:PostCommentReportCount>
    <d2p1:PostCommentsCount>0</d2p1:PostCommentsCount>
    <d2p1:PostDownVotes>0</d2p1:PostDownVotes>
    <d2p1:PostReportCount>0</d2p1:PostReportCount>
    <d2p1:PostUpVotes>0</d2p1:PostUpVotes>
    <d2p1:PostsCount>0</d2p1:PostsCount>
    <d2p1:TechStacksCount>0</d2p1:TechStacksCount>
    <d2p1:TechnologyCount>0</d2p1:TechnologyCount>
    <d2p1:UserName>String</d2p1:UserName>
  </UserActivity>
  <UserAuthId>String</UserAuthId>
  <UserAuthName>String</UserAuthName>
  <UserName>String</UserName>
</SessionInfoResponse>