Skip to content
Snippets Groups Projects
Select Git revision
  • e8a980a3a65bf335b51dc923c065f95658e381d4
  • master default
  • autorisation_visit
  • signup_mydata
  • format_editData
  • dev
  • authorize-valid-profile
  • feli90-patch-2
  • feli90-patch-1
  • context_sheet
  • testNewForm
  • FeliLocalTest1
  • ios-account-fix
  • change-form-link
  • dev_pages_projet
  • remise_sorties
  • release/first-users
17 results

adapters.ts

Blame
  • user avatar
    ThomasBidot authored and GitHub committed
    * Fix Oser to OSER (#55)
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * fix Oser to OSER
    
    * Validated signup file display (#57)
    
    * Modify inscription page (#32)
    
    * modify the order of blocks
    
    * Update dependencies and TravisCI build (#33)
    
    * Update dependencies via a clean npm install
    
    * Use Node.js 10 in Travis CI
    
    * Specify node==10.x for Heroku
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * adds untested frontend support for showing validated status of signup file
    
    * adds phone number validation for personnal data
    
    * checks for year field in registration to display correct status
    
    Co-authored-by: default avatarAurianeStrasser2 <32937502+AurianeStrasser2@users.noreply.github.com>
    Co-authored-by: default avatarchiahetcho <44137047+chiahetcho@users.noreply.github.com>
    Co-authored-by: default avatarFlorimond Manca <florimond.manca@gmail.com>
    Co-authored-by: default avatarDylan Sechet <dylan.sechet82@gmail.com>
    
    * Personnal data fix (#58)
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * adds some options and fixes wrong scholarship in the personnal data form
    
    * adds info on phone number format (#61)
    
    * Modify inscription page (#32)
    
    * modify the order of blocks
    
    * Update dependencies and TravisCI build (#33)
    
    * Update dependencies via a clean npm install
    
    * Use Node.js 10 in Travis CI
    
    * Specify node==10.x for Heroku
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * Validated signup file display (#54)
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * adds untested frontend support for showing validated status of signup file
    
    * adds phone number validation for personnal data
    
    * checks for year field in registration to display correct status
    
    * adds some options and fixes wrong scholarship in the personnal data form
    
    * adds info on phone number format
    
    Co-authored-by: default avatarAurianeStrasser2 <32937502+AurianeStrasser2@users.noreply.github.com>
    Co-authored-by: default avatarchiahetcho <44137047+chiahetcho@users.noreply.github.com>
    Co-authored-by: default avatarFlorimond Manca <florimond.manca@gmail.com>
    Co-authored-by: default avatarDylan Sechet <dylan.sechet82@gmail.com>
    
    * Update student-signup.component.html (#62)
    
    * Improve error message (#63)
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * improves phone number validation format
    
    * adds error message when email is already used and redirects after signup (#64)
    
    * adds support for personnal data
    
    * modifie le form pour inclure la nationalité
    
    * supprime le gg form
    
    * supprime le champ section et ajoute la liste des etablissements
    
    * adapts for user
    
    * adds validation and connects to students api for personnal data
    
    * adds classType field and rgpd info
    
    * corrects scholarships
    
    * removes signup file tab
    
    * minor presentation changes
    
    * deletes random console.log
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * changes upload component declarations
    
    * filters if the whole list is sent back
    
    * adds message after personnal data modifications
    
    * improves phone number validation format
    
    * adds message when email already used and redirects after signup
    
    * ajout champ confirmation email
    
    * ajout champ confirmation email en changeant tout
    
    * correction ERRROR due a la suppressiond es ficher email.matcher.ts et password.matcher.ts
    
    * chgmt mineurs
    
    * chgmt mineurs
    
    * mise en commentaire de la condition sur le mdp
    
    * mise en commentaire de "personnalDataService"
    
    * ajout d'espaces sur html
    
    * Add context_sheet for visits, frontend
    
    Co-authored-by: default avatarArthur Guédon <60623551+arthurgdn@users.noreply.github.com>
    Co-authored-by: default avatarAurianeStrasser2 <32937502+AurianeStrasser2@users.noreply.github.com>
    Co-authored-by: default avatarchiahetcho <44137047+chiahetcho@users.noreply.github.com>
    Co-authored-by: default avatarFlorimond Manca <florimond.manca@gmail.com>
    Co-authored-by: default avatarDylan Sechet <dylan.sechet82@gmail.com>
    Co-authored-by: default avatarfeli vigneau <feli.vigneau@student-cs.fr>
    Co-authored-by: default avatarfelivigneau <felivigneau@gmail.com>
    Co-authored-by: default avatarfeli90 <73308577+feli90@users.noreply.github.com>
    Co-authored-by: default avatarBidot-Naude Thomas <thomas.bidotnaude@student-cs.fr>
    0068319b
    History
    adapters.ts 3.21 KiB
    import { Visit, Place, Participant, Organizer } from './models';
    import { UserAdapter, AddressAdapter, IAdapter } from 'app/core';
    
    
    export class PlaceAdapter implements IAdapter<Place> {
    
      private addressAdapter = new AddressAdapter();
    
      adapt(data: any): Place {
        return {
          id: data.id,
          name: data.name,
          description: data.description,
          address: data.address ? this.addressAdapter.adapt(data.address) : null,
        }
      }
    }
    
    
    export class ParticipantAdapter implements IAdapter<Participant> {
    
      private userAdapter = new UserAdapter();
    
      adapt(data: any): Participant {
        return {
          id: data.id,
          present: data.present,
          accepted: data.accepted,
          user: this.userAdapter.adapt(data.user),
          visitId: data.visit,
        }
      }
    }
    
    
    export class OrganizerAdapter implements IAdapter<Organizer> {
    
      private userAdapter = new UserAdapter();
    
      adapt(data: any): Organizer {
        return {
          id: data.id,
          user: data.user ? this.userAdapter.adapt(data.user) : null,
        }
      }
    }
    
    
    export class SimpleVisitAdapter implements IAdapter<Visit> {
    
      private placeAdapter = new PlaceAdapter();
      private participantAdapter = new ParticipantAdapter();
    
      adapt(data: any): Visit {
        const fromUserIds = (arr: number[]) => (arr || []).map(
          id => ({
            id: null,
            user: { id: id },
            visitId: data.id,
          })
        );
        const participants = data.participants.map(
          p => this.participantAdapter.adapt(p)
        );
        const place = this.placeAdapter.adapt({ name: data.place });
        return new Visit({
          id: data.id,
          title: data.title,
          summary: data.summary,
          description: data.description,
          place: place,
          date: new Date(data.date),
          startTime: new Date(Date.parse(`1 Jan 2000 ${data.start_time}`)),
          endTime: new Date(Date.parse(`1 Jan 2000 ${data.end_time}`)),
          passed: data.passed,
          deadline: new Date(data.deadline),
          registrationsOpen: data.registrations_open,
          image: data.image,
          participants: participants,
          organizers: fromUserIds(data.organizers),
        })
      }
    }
    
    
    export class VisitAdapter implements IAdapter<Visit> {
    
      private placeAdapter = new PlaceAdapter();
      private participantAdapter = new ParticipantAdapter();
      private organizerAdapter = new OrganizerAdapter();
    
      adapt(data: any): Visit {
        const participants = data.participants.map(
          p => this.participantAdapter.adapt(p)
        );
        const organizers = data.organizers.map(
          o => this.organizerAdapter.adapt(o)
        );
        return new Visit({
          id: data.id,
          title: data.title,
          summary: data.summary,
          description: data.description,
          place: data.place ? this.placeAdapter.adapt(data.place) : null,
          date: new Date(data.date),
          startTime: new Date(Date.parse(`1 Jan 2000 ${data.start_time}`)),
          endTime: new Date(Date.parse(`1 Jan 2000 ${data.end_time}`)),
          passed: data.passed,
          meetingPlace: data.meeting,
          deadline: new Date(data.deadline),
          registrationsOpen: data.registrations_open,
          image: data.image,
          factSheet: data.fact_sheet,
          contextSheet: data.context_sheet,
          permissionSheet: data.permission,
          participants: participants,
          organizers: organizers,
        });
      }
    }