user.model.ts 990 Bytes
/**
 * Created by tuukka on 15/02/17.
 */

// vim magic: %s/^\s*\w\+\s\+\(\w\+\)\s\+\(\w\+\)\s*.*;$/  \2: \L\1;/

import gql from 'graphql-tag';

export enum UserGender {
  MALE,
  FEMALE,
  UNSPECIFIED
}

export class User {





  static fragments = gql`
    fragment userPrimitives on User {
      address
      allergiesFreetext
      birthday
      email
      firstnames
      gender
      id:
      lastname
      login
      nick
      phone
      town
      shirtSize
      town
      zip
    }

  `;


  nick: string;
  login: string;
  id: number;
  firstname: string;
  lastname: string;
  password: string;

  birthday: Date;
  gender: UserGender;

  phone: string;
  email: string;

  streetAddress: string;
  zip: string;
  town: string;


  public static NewUser(user) {

    if (user === null) {
      return new User();
    }

    return Object.assign(new User(), user);
  }


  public isAnonymous(): boolean {
    return !this.login || this.login === 'anonymous';
  }

}