示例#1
0
def signup(username, password, phonenum, deviceid):
    """
    Handles put requests for signups from our Android app
    """
    # hash the password
    pwhash = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
    # check to see if a username is already in the database
    userexist = User.objects.filter(username=username).exists()

    if userexist:
        return "User already exists"

    user = User(username=username,
                pwhash=pwhash,
                phonenum=phonenum,
                deviceid=deviceid)
    user.save()

    device = Device(deviceid=deviceid,
                    username=username,
                    pendingrequest=False,
                    requestgranted=False,
                    imagebytes='')
    device.save()

    return "User and Device added"
示例#2
0
 def setUp(self):
     """Define the test client and other test variables."""
     self.color = "Black"
     self.capacity = 32
     self.os_version = "iOS 6"
     self.device_model = self.create_device_model()
     self.device = Device(color=self.color,
                          capacity=self.capacity,
                          os_version=self.os_version,
                          device_model=self.device_model)
示例#3
0
 def setUp(self):
     """Prepare the dummy user account."""
     username = "******"
     password = "******"
     self.__client = APIClient()
     self.__user = User.objects.create_user(username, '*****@*****.**',
                                            password)
     self.__basic_digest = "Basic " + base64.b64encode("{}:{}".format(
         username, password).encode('ascii')).decode('ascii')
     self.__device = Device(name="dummydevice", dreempy_version="1.2.3")
     self.__device.save()
示例#4
0
    def __process_record(cls, path):
        """Read, extract and store a single Dreem records data."""
        try:
            record = h5py.File(path, 'r')
        except OSError:
            # The file is still copying. It will be considered again on next poll.
            return

        # These two attributes are stored as ASCII strings.
        username = str(record.attrs["user"], "utf-8")
        devicename = str(record.attrs["device"], "utf-8")

        # Retrieving the user
        try:
            user = User.objects.get(username=username)
        except ObjectDoesNotExist:
            print("Unknown user, skipping the record…")
            path.unlink()
            return

        # Retrieving the device
        try:
            device = Device.objects.get(name=devicename)
        except Device.DoesNotExist:
            # Temporary: we create the device
            print("Unknown device, inserting…")
            device = Device(name=devicename,
                            dreempy_version=record.attrs["dreempy_version"])
            device.save()

        record = Record(
            start_time=datetime.fromtimestamp(int(record.attrs["start_time"]),
                                              timezone(timedelta(hours=1))),
            stop_time=datetime.fromtimestamp(int(record.attrs["stop_time"]),
                                             timezone(timedelta(hours=1))),
            sleep_start_time=datetime.fromtimestamp(
                int(record.attrs["sleep_start_time"]),
                timezone(timedelta(hours=1))),
            sleep_stop_time=datetime.fromtimestamp(
                int(record.attrs["sleep_stop_time"]),
                timezone(timedelta(hours=1))),
            sleep_score=record.attrs["sleep_score"],
            number_of_stimulations=int(record.attrs["number_of_stimulations"]),
            number_of_wake=int(record.attrs["number_of_wake"]),
            hypnogram=JSONRenderer().render(
                record["reporting"]["dreemnogram"][()]),
            user=user,
            device=device)
        record.save()
        path.unlink()
示例#5
0
    def handle(self, *args, **options):

        try:

            contest = Contest.objects.all()
            contest.delete()

            contest_2014 = Contest()
            contest_2014.year = 2014
            contest_2014.theme = 'Ritim'
            contest_2014.poster = 'http://beste.halici.com.tr/afis/2014.jpg'
            contest_2014.start_date = datetime.datetime(2014, 6, 1, 0, 0)
            contest_2014.final_date = datetime.datetime(2014, 11, 1, 0, 0)
            contest_2014.finish_date = datetime.datetime(2014, 12, 15, 0, 0)
            contest_2014.save()

            contest_2015 = Contest()
            contest_2015.year = 2015
            contest_2014.theme = 'Attila Özdemiroğlu'
            contest_2014.poster = 'http://beste.halici.com.tr/afis/2015.jpg'
            contest_2015.start_date = datetime.datetime(2015, 6, 1, 0, 0)
            contest_2015.final_date = datetime.datetime(2015, 11, 1, 0, 0)
            contest_2015.finish_date = datetime.datetime(2015, 12, 15, 0, 0)
            contest_2015.save()

            devices = Device.objects.all()
            devices.delete()

            device = Device()
            device.name = 'Bilgisayar'
            device.save()

            softwares = Software.objects.all()
            softwares.delete()

            software = Software()
            software.name = 'FL Studio'
            software.save()

            stage_materials = StageMaterial.objects.all()
            stage_materials.delete()

            stage_material = StageMaterial()
            stage_material.name = 'Gitar'
            stage_material.save()

            contents = Content.objects.all()
            contents.delete()

            content_file = open('default_contents/api_content.csv', 'rb')
            reader = csv.reader(content_file)

            for row in reader:
                content = Content()
                content.create_date = row[1]
                content.title = row[2]
                content.link = row[3]
                content.content = row[4]
                content.category_name = row[5]
                content.is_active = True if row[7] == '1' else False
                content.is_for_static_content = True if row[8] == '1' else False

                content.save()

            content_vote = Content()
            content_vote.title = 'Oylama'
            content_vote.link = 'oylama'
            content_vote.category_name = 'link'
            content_vote.is_active = True
            content_vote.is_for_static_content = False
            content_vote.save()

            users = User.objects.all()
            users.delete()

            user = User()
            user.username = '******'
            user.email = '*****@*****.**'
            user.first_name = 'Abdullah'
            user.last_name = 'Karacabey'
            user.set_password('674311')
            user.addres = 'Bağlum'
            user.city = 'Ankara'
            user.save()

            compositions = Composition.objects.all()
            compositions.delete()

            composition_1 = Composition()
            composition_1.owner = user
            composition_1.contest = contest_2014
            composition_1.name = 'İlk Şarkı'
            composition_1.url = 'https://s3-eu-west-1.amazonaws.com/gong-ir/temp_attachments/beste/1441108257899wjzK3Htv'
            composition_1.save()
            composition_1.softwares = [software]
            composition_1.devices = [device]
            composition_1.stage_materials = [stage_material]

            composition_2 = Composition(owner=user, contest=contest_2014)
            composition_2.name = 'İkinci Şarkı'
            composition_2.url = 'https://s3-eu-west-1.amazonaws.com/gong-ir/temp_attachments/beste/1441108257899wjzK3Htv'
            composition_2.save()
            composition_2.softwares = [software]
            composition_2.devices = [device]
            composition_2.stage_materials = [stage_material]

            composition_3 = Composition(owner=user, contest=contest_2015)
            composition_3.name = 'Üçüncü Şarkı'
            composition_3.url = 'https://s3-eu-west-1.amazonaws.com/gong-ir/temp_attachments/beste/1441108257899wjzK3Htv'
            composition_3.save()
            composition_3.softwares = [software]
            composition_3.devices = [device]
            composition_3.stage_materials = [stage_material]

            composition_4 = Composition(owner=user, contest=contest_2015)
            composition_4.name = 'Dördüncü Şarkı'
            composition_4.url = 'https://s3-eu-west-1.amazonaws.com/gong-ir/temp_attachments/beste/1441108257899wjzK3Htv'
            composition_4.save()
            composition_4.softwares = [software]
            composition_4.devices = [device]
            composition_4.stage_materials = [stage_material]

            composition_1.save()
            composition_2.save()
            composition_3.save()
            composition_4.save()

            print 'Default contents are created'
        except IOError:
            print 'File is not found'
示例#6
0
def new_task():

    post_json = request.get_json()
    
    # Kunde anlegen oder über ID selektieren
    customer = None
    cus_id = None
    if hasattr(post_json, "cusID"):
        cus_id = post_json["cusID"]
    else:
        customer = Customer(
            cus_title = post_json["gender"],
            cus_first_name = post_json["firstName"],
            cus_last_name = post_json["lastName"],
            cus_email = post_json["email"],
            cus_phone_no = post_json["prefixNumber"] + " " + post_json["phone"],
            cus_street = post_json["street"],
            cus_house_number = post_json["houseNumber"],
            cus_post_code = post_json["postCode"]
        )
        db.session.add(customer) # pylint: disable=maybe-no-member
        db.session.commit() # pylint: disable=maybe-no-member
        cus_id = customer.cus_id

    # Gerät anlegen oder über ID selektieren
    device = None
    dev_id = None
    if hasattr(post_json, "devID"):
        dev_id = post_json["devID"]
    else:
        device = Device(
            dev_name = post_json["devName"],
            dev_model = post_json["devModel"],
            dev_category = post_json["categoryName"],
            dev_electronic_mechanical_type = post_json["electricalMechanical"],
            dev_mnf_name = post_json["manufacturerName"],
        )
        db.session.add(device) # pylint: disable=maybe-no-member
        db.session.commit() # pylint: disable=maybe-no-member
        dev_id = device.dev_id

    new_task = Task(
        tsk_fault_description = post_json["faultDescription"],
        tsk_creation_date = datetime.now(),
        tsk_cus_id = cus_id,
        tsk_dev_id = dev_id,
        tsk_state = "new",
        tsk_next_step = "not_set",
    )

    db.session.add(new_task) # pylint: disable=maybe-no-member
    db.session.commit() # pylint: disable=maybe-no-member

    tk = generate_token("customer", new_task.tsk_id)

    # QR-Code generieren
    image_file = generate_qrcode_label("customer", new_task.tsk_id, tk)

    # Files anlegen
    files = post_json["files"]
    for filename in files:
        new_file = Image(img_filename=filename, img_tsk_id=new_task.tsk_id)
        db.session.add(new_file) # pylint: disable=maybe-no-member
        db.session.commit() # pylint: disable=maybe-no-member

    # Token als neuer Token in der Session speichern.
    session['NEW_TOKEN'] = tk

    return {'tsk_id':new_task.tsk_id, 'tsk_token': tk}